@@ -13,16 +13,51 @@ suite("notificationManager pure functions", () => {
1313 assert . strictEqual ( getExtensionState ( undefined ) , "not-installed" ) ;
1414 } ) ;
1515
16- test ( "returns 'outdated' when version is below minimum" , ( ) => {
17- assert . strictEqual ( getExtensionState ( "1.0.0" ) , "outdated" ) ;
18- } ) ;
16+ // Real release versions that are below MIN_APPMOD_VERSION (1.13.0)
17+ const outdatedVersions = [
18+ "1.12.26021301" ,
19+ "1.11.0" ,
20+ "1.11.26012301" ,
21+ "1.10.1" ,
22+ "1.10.0" ,
23+ "1.9.1" ,
24+ "1.0.0" ,
25+ "0.5.2025061701" ,
26+ ] ;
1927
20- test ( "returns 'up-to-date' when version equals minimum" , ( ) => {
21- assert . strictEqual ( getExtensionState ( Upgrade . MIN_APPMOD_VERSION ) , "up-to-date" ) ;
22- } ) ;
28+ for ( const version of outdatedVersions ) {
29+ test ( `returns 'outdated' for version ${ version } ` , ( ) => {
30+ assert . strictEqual ( getExtensionState ( version ) , "outdated" ) ;
31+ } ) ;
32+ }
33+
34+ // Real release versions that are >= MIN_APPMOD_VERSION (1.13.0)
35+ const upToDateVersions = [
36+ "1.13.0" , // exact minimum
37+ "1.13.2026031003" , // pre-release based on 1.13
38+ "1.13.2026030905" ,
39+ "1.14.1" ,
40+ "1.14.2026033101" ,
41+ "1.15.0" ,
42+ "1.15.3" ,
43+ "1.16.0" ,
44+ "1.17.0" ,
45+ "1.17.1" ,
46+ "1.18.0" ,
47+ "1.19.0" ,
48+ "1.19.1" ,
49+ "1.19.2" ,
50+ "1.20.26052601" , // latest
51+ ] ;
2352
24- test ( "returns 'up-to-date' when version is above minimum" , ( ) => {
25- assert . strictEqual ( getExtensionState ( "99.0.0" ) , "up-to-date" ) ;
53+ for ( const version of upToDateVersions ) {
54+ test ( `returns 'up-to-date' for version ${ version } ` , ( ) => {
55+ assert . strictEqual ( getExtensionState ( version ) , "up-to-date" ) ;
56+ } ) ;
57+ }
58+
59+ test ( "MIN_APPMOD_VERSION is 1.13.0" , ( ) => {
60+ assert . strictEqual ( Upgrade . MIN_APPMOD_VERSION , "1.13.0" ) ;
2661 } ) ;
2762 } ) ;
2863
@@ -48,33 +83,63 @@ suite("notificationManager pure functions", () => {
4883 link : "https://nvd.nist.gov/vuln/detail/CVE-2021-44228" ,
4984 } ;
5085
51- test ( "shows 'Upgrade Now' when extension is up-to-date" , ( ) => {
52- const result = buildNotificationContent ( [ upgradeIssue ] , "up-to-date" ) ;
53- assert . strictEqual ( result . upgradeButtonText , "Upgrade Now" ) ;
54- assert . strictEqual ( result . fixCVEButtonText , "Fix Now" ) ;
55- } ) ;
86+ suite ( "button text" , ( ) => {
87+ test ( "shows 'Upgrade Now' / 'Fix Now' when extension is up-to-date" , ( ) => {
88+ const result = buildNotificationContent ( [ upgradeIssue ] , "up-to-date" ) ;
89+ assert . strictEqual ( result . upgradeButtonText , "Upgrade Now" ) ;
90+ assert . strictEqual ( result . fixCVEButtonText , "Fix Now" ) ;
91+ } ) ;
5692
57- test ( "shows 'Install Extension and Upgrade' when extension is not installed " , ( ) => {
58- const result = buildNotificationContent ( [ upgradeIssue ] , "not-installed " ) ;
59- assert . strictEqual ( result . upgradeButtonText , "Install Extension and Upgrade" ) ;
60- assert . strictEqual ( result . fixCVEButtonText , "Install Extension and Fix" ) ;
61- } ) ;
93+ test ( "shows 'Update Extension and Upgrade/Fix ' when extension is outdated " , ( ) => {
94+ const result = buildNotificationContent ( [ upgradeIssue ] , "outdated " ) ;
95+ assert . strictEqual ( result . upgradeButtonText , "Update Extension and Upgrade" ) ;
96+ assert . strictEqual ( result . fixCVEButtonText , "Update Extension and Fix" ) ;
97+ } ) ;
6298
63- test ( "shows 'Update Extension and Upgrade' when extension is outdated" , ( ) => {
64- const result = buildNotificationContent ( [ upgradeIssue ] , "outdated" ) ;
65- assert . strictEqual ( result . upgradeButtonText , "Update Extension and Upgrade" ) ;
66- assert . strictEqual ( result . fixCVEButtonText , "Update Extension and Fix" ) ;
99+ test ( "shows 'Install Extension and Upgrade/Fix' when extension is not installed" , ( ) => {
100+ const result = buildNotificationContent ( [ upgradeIssue ] , "not-installed" ) ;
101+ assert . strictEqual ( result . upgradeButtonText , "Install Extension and Upgrade" ) ;
102+ assert . strictEqual ( result . fixCVEButtonText , "Install Extension and Fix" ) ;
103+ } ) ;
67104 } ) ;
68105
69- test ( "builds CVE message when CVE issues present" , ( ) => {
70- const result = buildNotificationContent ( [ cveIssue ] , "up-to-date" ) ;
71- assert . ok ( result . message . includes ( "CVE" ) ) ;
72- assert . strictEqual ( result . fixCVEButtonText , "Fix Now" ) ;
73- } ) ;
106+ suite ( "message body" , ( ) => {
107+ test ( "up-to-date: message says 'upgrade'" , ( ) => {
108+ const result = buildNotificationContent ( [ upgradeIssue ] , "up-to-date" ) ;
109+ assert . ok ( result . message . includes ( "upgrade" ) ) ;
110+ assert . ok ( ! result . message . includes ( "install" ) ) ;
111+ assert . ok ( ! result . message . includes ( "update" ) ) ;
112+ } ) ;
113+
114+ test ( "outdated: message says 'update ... extension and upgrade'" , ( ) => {
115+ const result = buildNotificationContent ( [ upgradeIssue ] , "outdated" ) ;
116+ assert . ok ( result . message . includes ( "update" ) ) ;
117+ assert . ok ( result . message . includes ( "extension and upgrade" ) ) ;
118+ } ) ;
119+
120+ test ( "not-installed: message says 'install ... extension and upgrade'" , ( ) => {
121+ const result = buildNotificationContent ( [ upgradeIssue ] , "not-installed" ) ;
122+ assert . ok ( result . message . includes ( "install" ) ) ;
123+ assert . ok ( result . message . includes ( "extension and upgrade" ) ) ;
124+ } ) ;
125+
126+ test ( "CVE up-to-date: message says 'fix'" , ( ) => {
127+ const result = buildNotificationContent ( [ cveIssue ] , "up-to-date" ) ;
128+ assert . ok ( result . message . includes ( "fix" ) ) ;
129+ assert . ok ( result . message . includes ( "CVE" ) ) ;
130+ } ) ;
131+
132+ test ( "CVE outdated: message says 'update ... extension and fix'" , ( ) => {
133+ const result = buildNotificationContent ( [ cveIssue ] , "outdated" ) ;
134+ assert . ok ( result . message . includes ( "update" ) ) ;
135+ assert . ok ( result . message . includes ( "extension and fix" ) ) ;
136+ } ) ;
74137
75- test ( "builds upgrade message when no CVE issues" , ( ) => {
76- const result = buildNotificationContent ( [ upgradeIssue ] , "up-to-date" ) ;
77- assert . ok ( result . message . includes ( "Spring Boot" ) ) ;
138+ test ( "CVE not-installed: message says 'install ... extension and fix'" , ( ) => {
139+ const result = buildNotificationContent ( [ cveIssue ] , "not-installed" ) ;
140+ assert . ok ( result . message . includes ( "install" ) ) ;
141+ assert . ok ( result . message . includes ( "extension and fix" ) ) ;
142+ } ) ;
78143 } ) ;
79144 } ) ;
80145} ) ;
0 commit comments