@@ -13,8 +13,6 @@ import {type BrowserWrapper, DEFAULT_BROWSER_SETTINGS, Launcher} from '../shared
1313import { DEFAULT_DEVTOOLS_SETTINGS , setupDevToolsPage } from '../shared/frontend-helper.js' ;
1414import { setupInspectedPage } from '../shared/target-helper.js' ;
1515
16- import type { TestCallbackWithState } from './mocha-interface-helpers.js' ;
17-
1816const DEFAULT_SETTINGS = {
1917 ...DEFAULT_BROWSER_SETTINGS ,
2018 ...DEFAULT_DEVTOOLS_SETTINGS
@@ -23,23 +21,21 @@ const DEFAULT_SETTINGS = {
2321export class StateProvider {
2422 static instance = new StateProvider ( ) ;
2523
26- settingsCallbackMap : Map < Mocha . Suite , E2E . SuiteSettings > ;
27- browserMap : Map < string , BrowserWrapper > ;
24+ # settingsCallbackMap = new Map < Mocha . Suite , E2E . SuiteSettings > ( ) ;
25+ # browserMap = new Map < string , BrowserWrapper > ( ) ;
2826 static serverPort : number ;
2927
3028 private constructor ( ) {
31- this . settingsCallbackMap = new Map ( ) ;
32- this . browserMap = new Map ( ) ;
3329 }
3430
3531 registerSettingsCallback ( suite : Mocha . Suite , suiteSettings : E2E . SuiteSettings ) {
36- this . settingsCallbackMap . set ( suite , suiteSettings ) ;
32+ this . # settingsCallbackMap. set ( suite , suiteSettings ) ;
3733 }
3834
39- async callWithState ( context : Mocha . Context , suite : Mocha . Suite , testFn : TestCallbackWithState ) {
40- const { state, browsingContext} = await this . getState ( suite ) ;
35+ async callWithState ( context : Mocha . Context , suite : Mocha . Suite , testFn : E2E . TestAsyncCallbackWithState ) {
36+ const { state, browsingContext} = await this . # getState( suite ) ;
4137 try {
42- /* eslint-disable-next-line no-debugger */
38+ // eslint-disable-next-line no-debugger
4339 debugger ; // If you're paused here while debugging, stepping into the next line will step into your test.
4440 return await testFn . call ( context , state ) ;
4541 } finally {
@@ -50,26 +46,26 @@ export class StateProvider {
5046
5147 async resolveBrowser ( suite : Mocha . Suite ) {
5248 if ( ! StateProvider . serverPort ) {
53- StateProvider . serverPort = await StateProvider . globalSetup ( ) ;
49+ StateProvider . serverPort = await StateProvider . # globalSetup( ) ;
5450 }
55- const settings = await this . getSettings ( suite ) ;
51+ const settings = await this . # getSettings( suite ) ;
5652 const browserSettings = {
5753 enabledBlinkFeatures : ( settings . enabledBlinkFeatures ?? [ ] ) . toSorted ( ) ,
5854 disabledFeatures : ( settings . disabledFeatures ?? [ ] ) . toSorted ( ) ,
5955 } ;
6056 const browserKey = JSON . stringify ( browserSettings ) ;
61- let browser = this . browserMap . get ( browserKey ) ;
57+ let browser = this . # browserMap. get ( browserKey ) ;
6258 if ( ! browser ) {
6359 browser = await Launcher . browserSetup ( browserSettings ) ;
64- this . browserMap . set ( browserKey , browser ) ;
60+ this . # browserMap. set ( browserKey , browser ) ;
6561 }
6662 // Suite needs to be aware of the browser instance to be able to create the
6763 // full state for the tests
6864 suite . browser = browser ;
6965 }
7066
71- private async getState ( suite : Mocha . Suite ) {
72- const settings = await this . getSettings ( suite ) ;
67+ async # getState( suite : Mocha . Suite ) {
68+ const settings = await this . # getSettings( suite ) ;
7369 const browser = suite . browser ;
7470 const browsingContext = await browser . createBrowserContext ( ) ;
7571 const inspectedPage = await setupInspectedPage ( browsingContext , StateProvider . serverPort ) ;
@@ -85,17 +81,17 @@ export class StateProvider {
8581 return { state, browsingContext} ;
8682 }
8783
88- private async getSettings ( suite : Mocha . Suite ) : Promise < E2E . HarnessSettings > {
89- const settings = this . settingsCallbackMap . get ( suite ) ;
84+ async # getSettings( suite : Mocha . Suite ) : Promise < E2E . HarnessSettings > {
85+ const settings = this . # settingsCallbackMap. get ( suite ) ;
9086 if ( settings ) {
9187 return mergeSettings ( settings , DEFAULT_SETTINGS ) ;
9288 }
9389 return DEFAULT_SETTINGS ;
9490 }
9591
96- /* eslint-disable no-console */
97- private static async globalSetup ( ) {
92+ static async #globalSetup( ) {
9893 const serverPort = Number ( await startServer ( TestConfig . serverType , [ ] ) ) ;
94+ // eslint-disable-next-line no-console
9995 console . log ( `Started ${ TestConfig . serverType } server on port ${ serverPort } ` ) ;
10096 puppeteer . Puppeteer . registerCustomQueryHandler ( 'pierceShadowText' , {
10197 queryOne : querySelectorShadowTextOne as ( ( node : Node , selector : string ) => Node | null ) ,
@@ -105,7 +101,7 @@ export class StateProvider {
105101 }
106102
107103 async closeBrowsers ( ) {
108- await this . browserMap . forEach ( async ( browser : BrowserWrapper ) => {
104+ await this . # browserMap. forEach ( async ( browser : BrowserWrapper ) => {
109105 await browser . browser . close ( ) ;
110106 } ) ;
111107 }
0 commit comments