11import * as core from "@actions/core" ;
22import * as toolcache from "@actions/tool-cache" ;
3- import test from "ava" ;
3+ import test , { ExecutionContext } from "ava" ;
44import sinon from "sinon" ;
55
66import * as apiClient from "./api-client" ;
77import * as defaults from "./defaults.json" ;
88import { KnownLanguage } from "./languages" ;
9- import { getRunnerLogger } from "./logging" ;
9+ import { getRunnerLogger , Logger } from "./logging" ;
1010import * as startProxyExports from "./start-proxy" ;
1111import { parseLanguage } from "./start-proxy" ;
1212import * as statusReport from "./status-report" ;
@@ -384,6 +384,23 @@ test("getSafeErrorMessage - does not return message for arbitrary errors", (t) =
384384 t . assert ( message . includes ( typeof error ) ) ;
385385} ) ;
386386
387+ const wrapFailureTest = test . macro ( {
388+ exec : async (
389+ t : ExecutionContext < unknown > ,
390+ setup : ( ) => void ,
391+ fn : ( logger : Logger ) => Promise < void > ,
392+ ) => {
393+ const loggedMessages = [ ] ;
394+ const logger = getRecordingLogger ( loggedMessages ) ;
395+ setup ( ) ;
396+
397+ await t . throwsAsync ( fn ( logger ) , {
398+ instanceOf : startProxyExports . StartProxyError ,
399+ } ) ;
400+ } ,
401+ title : ( providedTitle ) => `${ providedTitle } - wraps errors on failure` ,
402+ } ) ;
403+
387404test ( "downloadProxy - returns file path on success" , async ( t ) => {
388405 const loggedMessages = [ ] ;
389406 const logger = getRecordingLogger ( loggedMessages ) ;
@@ -398,15 +415,13 @@ test("downloadProxy - returns file path on success", async (t) => {
398415 t . is ( result , testPath ) ;
399416} ) ;
400417
401- test ( "downloadProxy - wraps errors on failure" , async ( t ) => {
402- const loggedMessages = [ ] ;
403- const logger = getRecordingLogger ( loggedMessages ) ;
404- sinon . stub ( toolcache , "downloadTool" ) . throws ( ) ;
405-
406- await t . throwsAsync (
407- startProxyExports . downloadProxy ( logger , "url" , undefined ) ,
408- {
409- instanceOf : startProxyExports . StartProxyError ,
410- } ,
411- ) ;
412- } ) ;
418+ test (
419+ "downloadProxy" ,
420+ wrapFailureTest ,
421+ ( ) => {
422+ sinon . stub ( toolcache , "downloadTool" ) . throws ( ) ;
423+ } ,
424+ async ( logger ) => {
425+ await startProxyExports . downloadProxy ( logger , "url" , undefined ) ;
426+ } ,
427+ ) ;
0 commit comments