@@ -2,172 +2,181 @@ import { describe, expect, it } from 'vitest';
22
33import { generateLanguageVersionsHistory } from '../versionsHistory.js' ;
44
5- describe ( 'generateLanguageVersionsHistory' , ( ) => {
6- describe ( 'no new releases' , ( ) => {
7- it ( 'parses version of the same minor' , ( ) => {
8- const versions = generateLanguageVersionsHistory (
9- [
10- '1.2.4 Thu Dec 28 15:48:25 2023 +0000' ,
11- '1.2.5 Tue Jan 2 14:17:11 2024 +0000' ,
12- '1.2.6 Tue Jan 2 15:26:06 2024 +0000' ,
13- '1.2.7 Thu Jan 4 15:09:11 2024 +0000' ,
14- ] ,
15- { current : '1.2.7' , next : '1.2.7' } ,
16- ) ;
5+ describe ( 'no new releases' , ( ) => {
6+ it ( 'parses version of the same minor' , ( ) => {
7+ const versions = generateLanguageVersionsHistory (
8+ [
9+ '1.2.4 Thu Dec 28 15:48:25 2023 +0000' ,
10+ '1.2.5 Tue Jan 2 14:17:11 2024 +0000' ,
11+ '1.2.6 Tue Jan 2 15:26:06 2024 +0000' ,
12+ '1.2.7 Thu Jan 4 15:09:11 2024 +0000' ,
13+ ] ,
14+ { current : '1.2.7' , next : '1.2.7' } ,
15+ ) ;
1716
18- expect ( versions ) . toEqual ( {
19- '1.2.4' : {
20- releaseDate : '2023-12-28' ,
21- slaStatus : 'eligible' ,
22- supportStatus : 'not eligible' ,
23- } ,
24- '1.2.5' : {
25- releaseDate : '2024-01-02' ,
26- slaStatus : 'eligible' ,
27- supportStatus : 'not eligible' ,
28- } ,
29- '1.2.6' : {
30- releaseDate : '2024-01-02' ,
31- slaStatus : 'eligible' ,
32- supportStatus : 'not eligible' ,
33- } ,
34- '1.2.7' : {
35- releaseDate : '2024-01-04' ,
36- slaStatus : 'eligible' ,
37- supportStatus : 'eligible' ,
38- } ,
39- } ) ;
17+ expect ( versions ) . toEqual ( {
18+ '1.2.4' : {
19+ releaseDate : '2023-12-28' ,
20+ slaStatus : 'eligible' ,
21+ supportStatus : 'eligible' ,
22+ } ,
23+ '1.2.5' : {
24+ releaseDate : '2024-01-02' ,
25+ slaStatus : 'eligible' ,
26+ supportStatus : 'eligible' ,
27+ } ,
28+ '1.2.6' : {
29+ releaseDate : '2024-01-02' ,
30+ slaStatus : 'eligible' ,
31+ supportStatus : 'eligible' ,
32+ } ,
33+ '1.2.7' : {
34+ releaseDate : '2024-01-04' ,
35+ slaStatus : 'eligible' ,
36+ supportStatus : 'eligible' ,
37+ } ,
4038 } ) ;
39+ } ) ;
4140
42- it ( 'parses version of different same minor' , ( ) => {
43- const versions = generateLanguageVersionsHistory (
44- [
45- '1.1.4 Thu Dec 28 15:48:25 2022 +0000' ,
46- '2.1.2 Tue Jan 2 14:17:11 2022 +0000' ,
47- '2.2.5 Tue Jan 2 14:17:11 2024 +0000' ,
48- '2.3.6 Tue Jan 2 15:26:06 2024 +0000' ,
49- '3.4.7 Thu Jan 4 15:09:11 2024 +0000' ,
50- ] ,
51- { current : '3.4.7' , next : '3.4.7' } ,
52- ) ;
41+ it ( 'parses version of different minor' , ( ) => {
42+ const versions = generateLanguageVersionsHistory (
43+ [
44+ '1.1.4 Thu Dec 28 15:48:25 2022 +0000' ,
45+ '2.1.2 Tue Jan 2 14:17:11 2022 +0000' ,
46+ '2.2.5 Tue Jan 2 14:17:11 2024 +0000' ,
47+ '2.3.6 Tue Jan 2 15:26:06 2024 +0000' ,
48+ '3.4.7 Thu Jan 4 15:09:11 2024 +0000' ,
49+ ] ,
50+ { current : '3.4.7' , next : '3.4.7' } ,
51+ ) ;
5352
54- expect ( versions ) . toEqual ( {
55- '1.1.4' : {
56- releaseDate : '2022-12-28' ,
57- slaStatus : 'not eligible' ,
58- supportStatus : 'not eligible' ,
59- } ,
60- '2.1.2' : {
61- releaseDate : '2022-01-02' ,
62- slaEndDate : '2026-08-14' ,
63- slaStatus : 'replaced' ,
64- supportStatus : 'not eligible' ,
65- } ,
66- '2.2.5' : {
67- releaseDate : '2024-01-02' ,
68- slaEndDate : '2026-08-14' ,
69- slaStatus : 'replaced' ,
70- supportStatus : 'not eligible' ,
71- } ,
72- '2.3.6' : {
73- releaseDate : '2024-01-02' ,
74- slaEndDate : '2026-08-14' ,
75- slaStatus : 'replaced' ,
76- supportEndDate : '2026-08-14' ,
77- supportStatus : 'eligible' ,
78- } ,
79- '3.4.7' : {
80- releaseDate : '2024-01-04' ,
81- slaStatus : 'eligible' ,
82- supportStatus : 'eligible' ,
83- } ,
84- } ) ;
53+ expect ( versions ) . toEqual ( {
54+ '1.1.4' : {
55+ releaseDate : '2022-12-28' ,
56+ slaStatus : 'not eligible' ,
57+ supportStatus : 'not eligible' ,
58+ } ,
59+ '2.1.2' : {
60+ releaseDate : '2022-01-02' ,
61+ slaEndDate : '2026-08-14' ,
62+ slaStatus : 'eligible' ,
63+ supportStatus : 'not eligible' ,
64+ } ,
65+ '2.2.5' : {
66+ releaseDate : '2024-01-02' ,
67+ slaEndDate : '2026-08-14' ,
68+ slaStatus : 'eligible' ,
69+ supportStatus : 'not eligible' ,
70+ } ,
71+ '2.3.6' : {
72+ releaseDate : '2024-01-02' ,
73+ slaEndDate : '2026-08-14' ,
74+ slaStatus : 'eligible' ,
75+ supportEndDate : '2026-08-14' ,
76+ supportStatus : 'eligible' ,
77+ } ,
78+ '3.4.7' : {
79+ releaseDate : '2024-01-04' ,
80+ slaStatus : 'eligible' ,
81+ supportStatus : 'eligible' ,
82+ } ,
8583 } ) ;
8684 } ) ;
85+ } ) ;
8786
88- describe ( 'new release' , ( ) => {
89- const start = new Date ( ) ;
90- const end = new Date ( start ) ;
91- end . setFullYear ( start . getFullYear ( ) + 2 ) ;
87+ describe ( 'new release' , ( ) => {
88+ const start = new Date ( ) ;
89+ const end = new Date ( start ) ;
90+ end . setFullYear ( start . getFullYear ( ) + 2 ) ;
9291
93- it ( 'same version as active version' , ( ) => {
94- const versions = generateLanguageVersionsHistory ( [ '1.2.4 Thu Dec 28 15:48:25 2023 +0000' ] , {
95- next : '1.2.4' ,
96- current : '1.2.4' ,
97- releaseType : 'minor' ,
98- } ) ;
92+ it ( 'same version as active version' , ( ) => {
93+ const versions = generateLanguageVersionsHistory ( [ '1.2.4 Thu Dec 28 15:48:25 2023 +0000' ] , {
94+ next : '1.2.4' ,
95+ current : '1.2.4' ,
96+ releaseType : 'minor' ,
97+ } ) ;
9998
100- expect ( versions ) . toEqual ( {
101- '1.2.4' : {
102- releaseDate : '2023-12-28' ,
103- slaStatus : 'eligible' ,
104- supportStatus : 'eligible' ,
105- } ,
106- } ) ;
99+ expect ( versions ) . toEqual ( {
100+ '1.2.4' : {
101+ releaseDate : '2023-12-28' ,
102+ slaStatus : 'eligible' ,
103+ supportStatus : 'eligible' ,
104+ } ,
107105 } ) ;
106+ } ) ;
108107
109- it ( 'new major: sets the new release as active, sets the last tag as maintenance' , ( ) => {
110- const versions = generateLanguageVersionsHistory ( [ '1.2.4 Thu Dec 28 15:48:25 2023 +0000' ] , {
108+ it ( 'new major: sets the new release as active, sets the last tag as maintenance' , ( ) => {
109+ const versions = generateLanguageVersionsHistory (
110+ [ '1.2.4 Thu Dec 28 15:48:25 2023 +0000' , '1.2.5 Tue Jan 2 14:17:11 2024 +0000' ] ,
111+ {
111112 next : '2.0.0' ,
112113 current : '1.2.4' ,
113114 releaseType : 'major' ,
114- } ) ;
115+ } ,
116+ ) ;
115117
116- expect ( versions ) . toEqual ( {
117- '1.2.4' : {
118- releaseDate : '2023-12-28' ,
119- slaStatus : 'eligible' ,
120- supportEndDate : '2026-08-14' ,
121- supportStatus : 'eligible' ,
122- } ,
123- '2.0.0' : {
124- releaseDate : start . toISOString ( ) . split ( 'T' ) [ 0 ] ,
125- slaStatus : 'eligible' ,
126- supportStatus : 'eligible' ,
127- } ,
128- } ) ;
118+ expect ( versions ) . toEqual ( {
119+ '1.2.4' : {
120+ releaseDate : '2023-12-28' ,
121+ slaStatus : 'eligible' ,
122+ slaEndDate : '2026-08-14' ,
123+ supportEndDate : '2026-08-14' ,
124+ supportStatus : 'eligible' ,
125+ } ,
126+ '1.2.5' : {
127+ releaseDate : '2024-01-02' ,
128+ slaStatus : 'eligible' ,
129+ slaEndDate : '2026-08-14' ,
130+ supportEndDate : '2026-08-14' ,
131+ supportStatus : 'eligible' ,
132+ } ,
133+ '2.0.0' : {
134+ releaseDate : start . toISOString ( ) . split ( 'T' ) [ 0 ] ,
135+ slaStatus : 'eligible' ,
136+ supportStatus : 'eligible' ,
137+ } ,
129138 } ) ;
139+ } ) ;
130140
131- it ( 'new minor: sets the new release as active, sets the last tag as maintenance' , ( ) => {
132- const versions = generateLanguageVersionsHistory ( [ '1.2.4 Thu Dec 28 15:48:25 2023 +0000' ] , {
133- next : '1.3.0' ,
134- current : '1.2.4' ,
135- releaseType : 'minor' ,
136- } ) ;
141+ it ( 'new minor: sets the new release as active, sets the last tag as maintenance' , ( ) => {
142+ const versions = generateLanguageVersionsHistory ( [ '1.2.4 Thu Dec 28 15:48:25 2023 +0000' ] , {
143+ next : '1.3.0' ,
144+ current : '1.2.4' ,
145+ releaseType : 'minor' ,
146+ } ) ;
137147
138- expect ( versions ) . toEqual ( {
139- '1.2.4' : {
140- releaseDate : '2023-12-28' ,
141- slaStatus : 'eligible' ,
142- supportStatus : 'not eligible' ,
143- } ,
144- '1.3.0' : {
145- releaseDate : start . toISOString ( ) . split ( 'T' ) [ 0 ] ,
146- slaStatus : 'eligible' ,
147- supportStatus : 'eligible' ,
148- } ,
149- } ) ;
148+ expect ( versions ) . toEqual ( {
149+ '1.2.4' : {
150+ releaseDate : '2023-12-28' ,
151+ slaStatus : 'eligible' ,
152+ supportStatus : 'not eligible' ,
153+ } ,
154+ '1.3.0' : {
155+ releaseDate : start . toISOString ( ) . split ( 'T' ) [ 0 ] ,
156+ slaStatus : 'eligible' ,
157+ supportStatus : 'eligible' ,
158+ } ,
150159 } ) ;
160+ } ) ;
151161
152- it ( 'new patch: sets the new release as active, sets the last tag as inactive ' , ( ) => {
153- const versions = generateLanguageVersionsHistory ( [ '1.2.4 Thu Dec 28 15:48:25 2023 +0000' ] , {
154- next : '1.2.5' ,
155- current : '1.2.4' ,
156- releaseType : 'patch' ,
157- } ) ;
162+ it ( 'new patch: sets the new release as active' , ( ) => {
163+ const versions = generateLanguageVersionsHistory ( [ '1.2.4 Thu Dec 28 15:48:25 2023 +0000' ] , {
164+ next : '1.2.5' ,
165+ current : '1.2.4' ,
166+ releaseType : 'patch' ,
167+ } ) ;
158168
159- expect ( versions ) . toEqual ( {
160- '1.2.4' : {
161- releaseDate : '2023-12-28' ,
162- slaStatus : 'eligible' ,
163- supportStatus : 'not eligible' ,
164- } ,
165- '1.2.5' : {
166- releaseDate : start . toISOString ( ) . split ( 'T' ) [ 0 ] ,
167- slaStatus : 'eligible' ,
168- supportStatus : 'eligible' ,
169- } ,
170- } ) ;
169+ expect ( versions ) . toEqual ( {
170+ '1.2.4' : {
171+ releaseDate : '2023-12-28' ,
172+ slaStatus : 'eligible' ,
173+ supportStatus : 'eligible' ,
174+ } ,
175+ '1.2.5' : {
176+ releaseDate : start . toISOString ( ) . split ( 'T' ) [ 0 ] ,
177+ slaStatus : 'eligible' ,
178+ supportStatus : 'eligible' ,
179+ } ,
171180 } ) ;
172181 } ) ;
173182} ) ;
0 commit comments