@@ -158,33 +158,35 @@ export async function matchScreenshot(
158158 await page . mouse . move ( x , y ) ;
159159 }
160160
161- await onBeforeScreenshot ?.( page , combinedOptions ) ;
162-
163161 const slug = shouldPrependSlugToName ? getTestSlug ( page ) : undefined ;
164162
165- await page . waitForTimeout ( pause ) ;
166-
167163 if ( themes && themes . length ) {
168164 for ( const theme of themes ) {
169165 await onSwitchTheme ?.( theme , page ) ;
170166
171167 const resolvedName = name ? `${ name } -${ theme } ` : undefined ;
172168
173169 await doMatchScreenshot ( {
170+ page,
174171 locator,
175172 name : resolvedName ,
176173 slug,
177174 options : combinedOptions ,
178175 soft,
176+ onBeforeScreenshot,
177+ pause,
179178 } ) ;
180179 }
181180 } else {
182181 await doMatchScreenshot ( {
182+ page,
183183 locator,
184184 name,
185185 slug,
186186 options : combinedOptions ,
187187 soft,
188+ onBeforeScreenshot,
189+ pause,
188190 } ) ;
189191 }
190192
@@ -195,13 +197,20 @@ export async function matchScreenshot(
195197}
196198
197199async function doMatchScreenshot ( params : {
200+ page : Page ;
198201 locator : Locator | Page ;
199202 name ?: string ;
200203 slug ?: string ;
201204 options : ScreenshotOptions ;
202205 soft : boolean ;
206+ onBeforeScreenshot ?: OnBeforeScreenshotCallback ;
207+ pause : number ;
203208} ) : Promise < void > {
204- const { locator, name, slug, options, soft } = params ;
209+ const { page, locator, name, slug, options, soft, onBeforeScreenshot, pause } = params ;
210+
211+ await onBeforeScreenshot ?.( page , options ) ;
212+ await page . waitForTimeout ( pause ) ;
213+
205214 const resolvedName = resolveScreenshotName ( { name, slug } ) ;
206215 const resolvedExpect = soft ? expect . soft : expect ;
207216
0 commit comments