@@ -67,6 +67,29 @@ describe('setup-go', () => {
6767
6868 afterAll ( async ( ) => { } , 100000 ) ;
6969
70+ it ( 'can query versions' , async ( ) => {
71+ let versions : im . IGoVersion [ ] | null = await im . getVersions (
72+ 'https://non.existant.com/path'
73+ ) ;
74+ expect ( versions ) . toBeDefined ( ) ;
75+ let l : number = versions ? versions . length : 0 ;
76+ expect ( l ) . toBe ( 91 ) ;
77+ } ) ;
78+
79+ it ( 'finds stable match for exact version' , async ( ) => {
80+ os . platform = 'win32' ;
81+ os . arch = 'x64' ;
82+
83+ // get request is already mocked
84+ // spec: 1.13.7 => 1.13.7 (exact)
85+ let match : im . IGoVersion | undefined = await im . findMatch ( '1.13.7' , true ) ;
86+ expect ( match ) . toBeDefined ( ) ;
87+ let version : string = match ? match . version : '' ;
88+ expect ( version ) . toBe ( 'go1.13.7' ) ;
89+ let fileName = match ? match . files [ 0 ] . filename : '' ;
90+ expect ( fileName ) . toBe ( 'go1.13.7.windows-amd64.zip' ) ;
91+ } ) ;
92+
7093 it ( 'finds stable match for exact dot zero version' , async ( ) => {
7194 os . platform = 'darwin' ;
7295 os . arch = 'x64' ;
@@ -119,6 +142,22 @@ describe('setup-go', () => {
119142 expect ( fileName ) . toBe ( 'go1.13.7.windows-386.zip' ) ;
120143 } ) ;
121144
145+ it ( 'finds unstable pre-release version' , async ( ) => {
146+ os . platform = 'linux' ;
147+ os . arch = 'x64' ;
148+
149+ // spec: 1.14, stable=false => go1.14rc1
150+ let match : im . IGoVersion | undefined = await im . findMatch (
151+ '1.14.0-rc1' ,
152+ false
153+ ) ;
154+ expect ( match ) . toBeDefined ( ) ;
155+ let version : string = match ? match . version : '' ;
156+ expect ( version ) . toBe ( 'go1.14rc1' ) ;
157+ let fileName = match ? match . files [ 0 ] . filename : '' ;
158+ expect ( fileName ) . toBe ( 'go1.14rc1.linux-amd64.tar.gz' ) ;
159+ } ) ;
160+
122161 it ( 'evaluates to stable with input as true' , async ( ) => {
123162 inputs [ 'go-version' ] = '1.13.0' ;
124163 inputs . stable = 'true' ;
@@ -241,26 +280,20 @@ describe('setup-go', () => {
241280 ) ;
242281 } ) ;
243282
244- it ( 'can query versions' , async ( ) => {
245- let versions : im . IGoVersion [ ] | null = await im . getVersions (
246- 'https://non.existant.com/path'
247- ) ;
248- expect ( versions ) . toBeDefined ( ) ;
249- let l : number = versions ? versions . length : 0 ;
250- expect ( l ) . toBe ( 91 ) ;
283+ // 1.13.1 => 1.13.1
284+ // 1.13 => 1.13.0
285+ // 1.10beta1 => 1.10.0-beta1, 1.10rc1 => 1.10.0-rc1
286+ // 1.8.5beta1 => 1.8.5-beta1, 1.8.5rc1 => 1.8.5-rc1
287+ it ( 'converts prerelease versions' , async ( ) => {
288+ expect ( im . makeSemver ( '1.10beta1' ) ) . toBe ( '1.10.0-beta1' ) ;
289+ expect ( im . makeSemver ( '1.10rc1' ) ) . toBe ( '1.10.0-rc1' ) ;
251290 } ) ;
252291
253- it ( 'finds stable match for exact version ' , async ( ) => {
254- os . platform = 'win32' ;
255- os . arch = 'x64' ;
292+ it ( 'converts dot zero versions ' , async ( ) => {
293+ expect ( im . makeSemver ( '1.13' ) ) . toBe ( '1.13.0' ) ;
294+ } ) ;
256295
257- // get request is already mocked
258- // spec: 1.13.7 => 1.13.7 (exact)
259- let match : im . IGoVersion | undefined = await im . findMatch ( '1.13.7' , true ) ;
260- expect ( match ) . toBeDefined ( ) ;
261- let version : string = match ? match . version : '' ;
262- expect ( version ) . toBe ( 'go1.13.7' ) ;
263- let fileName = match ? match . files [ 0 ] . filename : '' ;
264- expect ( fileName ) . toBe ( 'go1.13.7.windows-amd64.zip' ) ;
296+ it ( 'does not convert exact versions' , async ( ) => {
297+ expect ( im . makeSemver ( '1.13.1' ) ) . toBe ( '1.13.1' ) ;
265298 } ) ;
266299} ) ;
0 commit comments