@@ -7,11 +7,11 @@ import {
77 VSCODE_DISPLAY_NAME ,
88 VSCODE_NAME ,
99 VSCODE_PUBLISHER ,
10- compareSemverCore ,
10+ compareSemver ,
1111 evaluate ,
1212 firstChangelogHeading ,
1313 moonshotHitAllowed ,
14- parseSemverCore ,
14+ parseSemver ,
1515} from './check-identity-freeze.mjs' ;
1616
1717const good = {
@@ -28,21 +28,25 @@ const good = {
2828 moonshotHits : [ ] ,
2929} ;
3030
31- void test ( 'parseSemverCore reads the numeric triple and ignores a prerelease' , ( ) => {
32- assert . deepEqual ( parseSemverCore ( '2.1.0' ) , [ 2 , 1 , 0 ] ) ;
33- assert . deepEqual ( parseSemverCore ( '0.43 .0-beta.1') , [ 0 , 43 , 0 ] ) ;
34- assert . equal ( parseSemverCore ( 'not-a-version' ) , null ) ;
31+ void test ( 'parseSemver keeps prerelease identifiers ' , ( ) => {
32+ assert . deepEqual ( parseSemver ( '2.1.0' ) , { core : [ 2 , 1 , 0 ] , pre : null } ) ;
33+ assert . deepEqual ( parseSemver ( '2.1 .0-beta.1') , { core : [ 2 , 1 , 0 ] , pre : [ 'beta' , '1' ] } ) ;
34+ assert . equal ( parseSemver ( 'not-a-version' ) , null ) ;
3535} ) ;
3636
37- void test ( 'compareSemverCore orders published lines' , ( ) => {
38- assert . ok ( compareSemverCore ( '2.1.0' , '0.43.0' ) > 0 ) ;
39- assert . ok ( compareSemverCore ( '0.43.0' , '2.1.0' ) < 0 ) ;
40- assert . equal ( compareSemverCore ( '2.1.0' , '2.1.0' ) , 0 ) ;
41- assert . equal ( compareSemverCore ( 'bad' , '2.1.0' ) , null ) ;
37+ void test ( 'compareSemver orders stable and prerelease lines' , ( ) => {
38+ assert . ok ( compareSemver ( '2.1.0' , '0.43.0' ) > 0 ) ;
39+ assert . ok ( compareSemver ( '0.43.0' , '2.1.0' ) < 0 ) ;
40+ assert . equal ( compareSemver ( '2.1.0' , '2.1.0' ) , 0 ) ;
41+ assert . ok ( compareSemver ( '2.1.0' , '2.1.0-beta.1' ) > 0 ) ;
42+ assert . ok ( compareSemver ( '2.1.0-beta.2' , '2.1.0-beta.1' ) > 0 ) ;
43+ assert . ok ( compareSemver ( '2.1.0-beta.1' , '2.1.0' ) < 0 ) ;
44+ assert . equal ( compareSemver ( 'bad' , '2.1.0' ) , null ) ;
4245} ) ;
4346
44- void test ( 'firstChangelogHeading reads the leading version section ' , ( ) => {
47+ void test ( 'firstChangelogHeading reads stable and prerelease headings ' , ( ) => {
4548 assert . equal ( firstChangelogHeading ( '# pkg\n\n## 2.1.0\n\n### Minor\n' ) , '2.1.0' ) ;
49+ assert . equal ( firstChangelogHeading ( '# pkg\n\n## 2.1.0-beta.1\n\n### Minor\n' ) , '2.1.0-beta.1' ) ;
4650 assert . equal ( firstChangelogHeading ( '# pkg\n\nno heading\n' ) , null ) ;
4751} ) ;
4852
@@ -86,6 +90,33 @@ void test('evaluate rejects a version below npm latest or below the base branch'
8690 } ) ;
8791 assert . equal ( base . ok , false ) ;
8892 assert . ok ( base . failures . some ( ( line ) => line . includes ( 'rewound 0.9.7 -> 0.7.6' ) ) ) ;
93+
94+ const stableToPre = evaluate ( {
95+ ...good ,
96+ versions : { ...good . versions , cli : '2.1.0-beta.1' } ,
97+ changelogHeadings : { ...good . changelogHeadings , cli : '2.1.0-beta.1' } ,
98+ baseVersions : { cli : '2.1.0' } ,
99+ } ) ;
100+ assert . equal ( stableToPre . ok , false ) ;
101+ assert . ok ( stableToPre . failures . some ( ( line ) => line . includes ( 'rewound 2.1.0 -> 2.1.0-beta.1' ) ) ) ;
102+
103+ const preToPre = evaluate ( {
104+ ...good ,
105+ versions : { ...good . versions , cli : '2.1.0-beta.1' } ,
106+ changelogHeadings : { ...good . changelogHeadings , cli : '2.1.0-beta.1' } ,
107+ baseVersions : { cli : '2.1.0-beta.2' } ,
108+ } ) ;
109+ assert . equal ( preToPre . ok , false ) ;
110+ assert . ok ( preToPre . failures . some ( ( line ) => line . includes ( 'rewound 2.1.0-beta.2 -> 2.1.0-beta.1' ) ) ) ;
111+ } ) ;
112+
113+ void test ( 'evaluate accepts a matching prerelease changelog heading' , ( ) => {
114+ const result = evaluate ( {
115+ ...good ,
116+ versions : { ...good . versions , cli : '2.1.0-beta.1' } ,
117+ changelogHeadings : { ...good . changelogHeadings , cli : '2.1.0-beta.1' } ,
118+ } ) ;
119+ assert . equal ( result . ok , true ) ;
89120} ) ;
90121
91122void test ( 'moonshotHitAllowed keeps provider hosts and oauth platform files' , ( ) => {
@@ -95,4 +126,8 @@ void test('moonshotHitAllowed keeps provider hosts and oauth platform files', ()
95126 moonshotHitAllowed ( 'packages/oauth/src/region.ts' , 'https://api.moonshot.ai/v1' ) ,
96127 true ,
97128 ) ;
129+ assert . equal (
130+ moonshotHitAllowed ( 'apps/vscode/package.json' , "name: 'moonshot-ai' https://api.moonshot.ai/v1" ) ,
131+ false ,
132+ ) ;
98133} ) ;
0 commit comments