6
6
*/
7
7
8
8
import { test , expect } from '@playwright/test' ;
9
+ import { Page } from 'playwright' ;
9
10
import { setupCookieClickerPage } from 'cookie-connoisseur' ;
10
11
11
12
test . describe ( 'Across-ascensions achievements' , ( ) => {
@@ -102,33 +103,50 @@ test.describe('Across-ascensions achievements', () => {
102
103
} ) ;
103
104
104
105
test . describe ( 'New across-ascensions achievements' , ( ) => {
105
- test . beforeEach ( async ( { page } ) => {
106
+ async function loadSpicedCookies ( page : Page ) {
106
107
await setupCookieClickerPage ( page ) ;
107
108
await page . evaluate ( ( ) => Game . LoadMod ( 'https://staticvariablejames.github.io/SpicedCookies/Spice.js' ) ) ;
108
109
await page . waitForFunction ( ( ) => 'Spiced cookies' in Game . mods ) ;
109
- } ) ;
110
+ }
110
111
111
112
test ( 'are created when the button is toggled' , async ( { page } ) => {
113
+ await loadSpicedCookies ( page ) ;
112
114
expect ( await page . evaluate ( ( ) => 'Parasitesmasher' in Game . Achievements ) ) . toBe ( false ) ;
113
115
expect ( await page . evaluate ( ( ) => 'A sleightly longer grind' in Game . Achievements ) ) . toBe ( false ) ;
114
116
await page . click ( 'text=Options' ) ;
115
117
await page . click ( '#SpiceButtonextraAchievementsAcrossAscensions' ) ;
116
118
expect ( await page . evaluate ( ( ) => 'Parasitesmasher' in Game . Achievements ) ) . toBe ( true ) ;
117
119
expect ( await page . evaluate ( ( ) => 'A sleightly longer grind' in Game . Achievements ) ) . toBe ( true ) ;
118
- await page . close ( ) ;
120
+ } ) ;
121
+
122
+ test ( 'are created on initialization if set' , async ( { page } ) => {
123
+ await setupCookieClickerPage ( page , { saveGame : {
124
+ modSaveData : {
125
+ 'Spiced cookies' : {
126
+ settings : {
127
+ extraAchievementsAcrossAscensions : true ,
128
+ } ,
129
+ } ,
130
+ } ,
131
+ } } ) ;
132
+ await page . evaluate ( ( ) => Game . LoadMod ( 'https://staticvariablejames.github.io/SpicedCookies/Spice.js' ) ) ;
133
+ await page . waitForFunction ( ( ) => 'Spiced cookies' in Game . mods ) ;
134
+ expect ( await page . evaluate ( ( ) => 'Parasitesmasher' in Game . Achievements ) ) . toBe ( true ) ;
135
+ expect ( await page . evaluate ( ( ) => 'A sleightly longer grind' in Game . Achievements ) ) . toBe ( true ) ;
119
136
} ) ;
120
137
121
138
test ( 'are awarded when the button is toggled' , async ( { page } ) => {
139
+ await loadSpicedCookies ( page ) ;
122
140
await page . evaluate ( 'Spice.saveGame.wrinklersPoppedPreviousAscensions = 1000' ) ;
123
141
await page . evaluate ( 'Spice.saveGame.reindeerClickedPreviousAscensions = 1000' ) ;
124
142
await page . click ( 'text=Options' ) ;
125
143
await page . click ( '#SpiceButtonextraAchievementsAcrossAscensions' ) ;
126
144
expect ( await page . evaluate ( ( ) => Game . HasAchiev ( 'Parasitesmasher' ) ) ) . toBeTruthy ( ) ;
127
145
expect ( await page . evaluate ( ( ) => Game . HasAchiev ( 'A sleightly longer grind' ) ) ) . toBeTruthy ( ) ;
128
- await page . close ( ) ;
129
146
} ) ;
130
147
131
148
test ( 'are awarded when the threshold is reached' , async ( { page } ) => {
149
+ await loadSpicedCookies ( page ) ;
132
150
let setting = await page . evaluate ( 'Spice.settings.awardAchievementsAcrossAscensions' ) ;
133
151
expect ( setting ) . toBe ( false ) ; // Things should work even with the setting above being false
134
152
@@ -146,6 +164,5 @@ test.describe('New across-ascensions achievements', () => {
146
164
147
165
setting = await page . evaluate ( 'Spice.settings.awardAchievementsAcrossAscensions' ) ;
148
166
expect ( setting ) . toBe ( false ) ; // This setting should not have been changed
149
- await page . close ( ) ;
150
167
} ) ;
151
168
} ) ;
0 commit comments