1- const registry = { manifest : jest . fn ( ) } ;
2- jest . mock ( 'libnpm' , ( ) => registry ) ;
3-
41import * as core from '@actions/core' ;
52import * as cli from '@actions/exec' ;
63
74import * as tools from '../src/tools' ;
5+ import * as packager from '../src/packager' ;
86import * as utils from './utils' ;
97
108describe ( tools . getBinaryName , ( ) => {
@@ -21,20 +19,6 @@ describe(tools.getBinaryName, () => {
2119 } ) ;
2220} ) ;
2321
24- describe ( tools . resolveVersion , ( ) => {
25- it ( 'fetches exact version of expo-cli' , async ( ) => {
26- registry . manifest . mockResolvedValue ( { version : '3.0.10' } ) ;
27- expect ( await tools . resolveVersion ( 'expo-cli' , 'latest' ) ) . toBe ( '3.0.10' ) ;
28- expect ( registry . manifest ) . toBeCalledWith ( 'expo-cli@latest' ) ;
29- } ) ;
30-
31- it ( 'fetches exact version of eas-cli' , async ( ) => {
32- registry . manifest . mockResolvedValue ( { version : '4.2.0' } ) ;
33- expect ( await tools . resolveVersion ( 'eas-cli' , 'latest' ) ) . toBe ( '4.2.0' ) ;
34- expect ( registry . manifest ) . toBeCalledWith ( 'eas-cli@latest' ) ;
35- } ) ;
36- } ) ;
37-
3822describe ( tools . maybeAuthenticate , ( ) => {
3923 const token = 'ABC123' ;
4024 const username = 'bycedric' ;
@@ -268,21 +252,25 @@ describe(tools.maybeWarnForUpdate, () => {
268252 let spy : { [ key : string ] : jest . SpyInstance } = { } ;
269253
270254 beforeEach ( ( ) => {
271- spy = { warning : jest . spyOn ( core , 'warning' ) . mockImplementation ( ) } ;
255+ spy = {
256+ warning : jest . spyOn ( core , 'warning' ) . mockImplementation ( ) ,
257+ resolveVersion : jest . spyOn ( packager , 'resolveVersion' ) . mockImplementation ( ) ,
258+ } ;
272259 } ) ;
273260
274261 afterAll ( ( ) => {
275262 spy . warning . mockRestore ( ) ;
263+ spy . resolveVersion . mockRestore ( ) ;
276264 } ) ;
277265
278266 it ( 'is silent when major version is up to date' , async ( ) => {
279- registry . manifest . mockResolvedValueOnce ( { version : '4.1.0' } ) . mockResolvedValueOnce ( { version : '4.0.1' } ) ;
267+ spy . resolveVersion . mockResolvedValueOnce ( '4.1.0' ) . mockResolvedValueOnce ( '4.0.1' ) ;
280268 await tools . maybeWarnForUpdate ( 'eas-cli' ) ;
281269 expect ( spy . warning ) . not . toBeCalled ( ) ;
282270 } ) ;
283271
284272 it ( 'warns when major version is outdated' , async ( ) => {
285- registry . manifest . mockResolvedValueOnce ( { version : '4.1.0' } ) . mockResolvedValueOnce ( { version : '3.0.1' } ) ;
273+ spy . resolveVersion . mockResolvedValueOnce ( '4.1.0' ) . mockResolvedValueOnce ( '3.0.1' ) ;
286274 await tools . maybeWarnForUpdate ( 'expo-cli' ) ;
287275 expect ( spy . warning ) . toBeCalledWith ( 'There is a new major version available of the Expo CLI (4.1.0)' ) ;
288276 expect ( spy . warning ) . toBeCalledWith ( 'If you run into issues, try upgrading your workflow to "expo-version: 4.x"' ) ;
@@ -293,23 +281,27 @@ describe(tools.handleError, () => {
293281 let spy : { [ key : string ] : jest . SpyInstance } = { } ;
294282
295283 beforeEach ( ( ) => {
296- spy = { setFailed : jest . spyOn ( core , 'setFailed' ) . mockImplementation ( ) } ;
284+ spy = {
285+ setFailed : jest . spyOn ( core , 'setFailed' ) . mockImplementation ( ) ,
286+ resolveVersion : jest . spyOn ( packager , 'resolveVersion' ) . mockImplementation ( ) ,
287+ } ;
297288 } ) ;
298289
299290 afterAll ( ( ) => {
300291 spy . setFailed . mockRestore ( ) ;
292+ spy . resolveVersion . mockRestore ( ) ;
301293 } ) ;
302294
303295 it ( 'marks the job as failed with expo-cli' , async ( ) => {
304296 const error = new Error ( 'test' ) ;
305- registry . manifest . mockResolvedValue ( '4.0.0' ) ;
297+ spy . resolveVersion . mockResolvedValue ( '4.0.0' ) ;
306298 await tools . handleError ( 'expo-cli' , error ) ;
307299 expect ( core . setFailed ) . toBeCalledWith ( error ) ;
308300 } ) ;
309301
310302 it ( 'fails with original error when update warning failed' , async ( ) => {
311303 const error = new Error ( 'test' ) ;
312- registry . manifest . mockRejectedValue ( new Error ( 'npm issue' ) ) ;
304+ spy . resolveVersion . mockRejectedValue ( new Error ( 'npm issue' ) ) ;
313305 await tools . handleError ( 'eas-cli' , error ) ;
314306 expect ( core . setFailed ) . toBeCalledWith ( error ) ;
315307 } ) ;
0 commit comments