1- import { run } from '../src/main'
2- import * as core from '@actions/core'
1+ import { run } from '../src/main' ;
2+ import * as core from '@actions/core' ;
33
44function mockCurrentVersion ( version : string ) {
55 jest . spyOn ( global , 'fetch' ) . mockResolvedValue ( {
66 json : jest
77 . fn ( )
88 . mockResolvedValue ( version === '' ? [ ] : [ { name : version } ] ) ,
99 ok : true
10- } as any as Promise < Response > )
10+ } as any as Promise < Response > ) ;
1111}
1212
1313function mockInputs (
@@ -17,38 +17,47 @@ function mockInputs(
1717) {
1818 jest . spyOn ( core , 'getInput' ) . mockImplementation ( ( name : string ) => {
1919 if ( name === 'org' ) {
20- return 'org'
20+ return 'org' ;
2121 }
2222 if ( name === 'packageName' ) {
23- return 'packageName'
23+ return 'packageName' ;
2424 }
2525 if ( name === 'minorVersion' ) {
26- return minorVersion
26+ return minorVersion ;
2727 }
2828 if ( name === 'mainVersion' ) {
29- return mainVersion
29+ return mainVersion ;
3030 }
3131 if ( name === 'publishBeta' ) {
32- return publishBeta
32+ return publishBeta ;
3333 }
34- throw new Error ( `Unexpected input ${ name } ` )
35- } )
34+ throw new Error ( `Unexpected input ${ name } ` ) ;
35+ } ) ;
3636}
3737
3838afterEach ( ( ) => {
39- jest . restoreAllMocks ( )
40- } )
39+ jest . restoreAllMocks ( ) ;
40+ } ) ;
4141
4242describe ( 'get current version' , ( ) => {
43- const OLD_ENV = process . env
43+ const OLD_ENV = process . env ;
4444 beforeEach ( ( ) => {
45- jest . resetModules ( ) // Most important - it clears the cache
46- process . env = { ...OLD_ENV , ...{ GITHUB_TOKEN : 'mytoken' } } // Make a copy
47- } )
45+ jest . resetModules ( ) ; // Most important - it clears the cache
46+ process . env = { ...OLD_ENV , ...{ GITHUB_TOKEN : 'mytoken' } } ;
47+ } ) ;
4848
4949 afterAll ( ( ) => {
50- process . env = OLD_ENV // Restore old environment
51- } )
50+ process . env = OLD_ENV ; // Restore old environment
51+ } ) ;
52+
53+ it ( 'should throw if no token is given' , async ( ) => {
54+ process . env = { ...OLD_ENV , ...{ GITHUB_TOKEN : undefined } } ;
55+ jest . spyOn ( core , 'setFailed' ) ;
56+ await run ( ) ;
57+ expect ( core . setFailed ) . toHaveBeenCalledWith (
58+ 'GITHUB_TOKEN not set, please set the GITHUB_TOKEN environment variable to secrets.GITHUB_TOKEN'
59+ ) ;
60+ } ) ;
5261
5362 describe ( 'when current version is empty' , ( ) => {
5463 it . each ( [
@@ -60,14 +69,14 @@ describe('get current version', () => {
6069 ] ) (
6170 'when main version is %s, minor version is %s, beta: %s, should return %s' ,
6271 async ( mainVersion , minorVersion , publishBeta , expectedVersion ) => {
63- mockCurrentVersion ( '' )
64- mockInputs ( mainVersion , minorVersion , publishBeta )
65- const spy = jest . spyOn ( core , 'setOutput' )
66- await run ( )
67- expect ( spy ) . toHaveBeenCalledWith ( 'version' , expectedVersion )
72+ mockCurrentVersion ( '' ) ;
73+ mockInputs ( mainVersion , minorVersion , publishBeta ) ;
74+ const spy = jest . spyOn ( core , 'setOutput' ) ;
75+ await run ( ) ;
76+ expect ( spy ) . toHaveBeenCalledWith ( 'version' , expectedVersion ) ;
6877 }
69- )
70- } )
78+ ) ;
79+ } ) ;
7180
7281 describe ( 'when current version does not match given main or minor version' , ( ) => {
7382 it . each ( [
@@ -78,14 +87,14 @@ describe('get current version', () => {
7887 ] ) (
7988 'when current: %s, publish beta: %s, should return: %s' ,
8089 async ( currentVersion , publishBeta , expectedVersion ) => {
81- mockCurrentVersion ( currentVersion )
82- mockInputs ( '1' , '0' , publishBeta )
83- const spy = jest . spyOn ( core , 'setOutput' )
84- await run ( )
85- expect ( spy ) . toHaveBeenCalledWith ( 'version' , expectedVersion )
90+ mockCurrentVersion ( currentVersion ) ;
91+ mockInputs ( '1' , '0' , publishBeta ) ;
92+ const spy = jest . spyOn ( core , 'setOutput' ) ;
93+ await run ( ) ;
94+ expect ( spy ) . toHaveBeenCalledWith ( 'version' , expectedVersion ) ;
8695 }
87- )
88- } )
96+ ) ;
97+ } ) ;
8998
9099 describe ( 'when current version match the given main or minor version' , ( ) => {
91100 it . each ( [
@@ -111,12 +120,12 @@ describe('get current version', () => {
111120 ] ) (
112121 'when current: %s, publish beta: %s, should return: %s' ,
113122 async ( currentVersion , publishBeta , expectedVersion ) => {
114- mockCurrentVersion ( currentVersion )
115- mockInputs ( '1' , '0' , publishBeta )
116- const spy = jest . spyOn ( core , 'setOutput' )
117- await run ( )
118- expect ( spy ) . toHaveBeenCalledWith ( 'version' , expectedVersion )
123+ mockCurrentVersion ( currentVersion ) ;
124+ mockInputs ( '1' , '0' , publishBeta ) ;
125+ const spy = jest . spyOn ( core , 'setOutput' ) ;
126+ await run ( ) ;
127+ expect ( spy ) . toHaveBeenCalledWith ( 'version' , expectedVersion ) ;
119128 }
120- )
121- } )
122- } )
129+ ) ;
130+ } ) ;
131+ } ) ;
0 commit comments