Skip to content

Commit aefbf3e

Browse files
committed
FIx E2E context manager
1 parent 1e34338 commit aefbf3e

5 files changed

Lines changed: 19 additions & 10 deletions

File tree

playwright.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ export default defineConfig({
3737
// No retries by default (even in CI) because it slows the CI pipeline and masks real bugs
3838
// If there is a known intermittent browser timing issue for some tests, it's fine to give 1 retry to those flaky tests
3939
retries: process.env.CI ? 0 : 0,
40-
workers: process.env.CI ? 1 : undefined,
40+
workers: process.env.CI ? 1 : 4,
4141
reporter: [
4242
['list'],
4343
['html', {outputFolder: `tests/reports/playwright-report`, open: 'on-failure'}],

tests/e2e/utils/contextManager.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export class ContextManager {
1616
const context = await this.browser.newContext()
1717
try {
1818
const page = await context.newPage()
19-
const app = new App(page, false)
19+
const app = new App(page)
2020
this.contexts.set(name, app)
2121
return app
2222
} catch (error) {

tests/e2e/web/fixtures/signInFixture.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {deleteUser} from '../utils/deleteUser'
77

88
export const test = base.extend<{
99
app: App
10+
app2: App
1011
devOneAccount: UserAccountInformation
1112
devTwoAccount: UserAccountInformation
1213
specAccount: UserAccountInformation
@@ -21,6 +22,14 @@ export const test = base.extend<{
2122
await use(appPage)
2223
await appPage.contextManager?.closeAll()
2324
},
25+
app2: async ({browser}, use) => {
26+
// Totally isolated app which can be used to sign in a different user
27+
// Use {storageState: 'auth/receiver.json'} later on to save compute time by signing in only once
28+
const context = await browser.newContext()
29+
const page = await context.newPage()
30+
await use(new App(page))
31+
await context.close() // guaranteed teardown, even on failure/timeout
32+
},
2433
signedInAccount: async ({app}: {app: App}, use) => {
2534
const account = testAccounts.faker_account()
2635
await seedUser(

tests/e2e/web/pages/app.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ export class App {
3333

3434
constructor(
3535
public readonly page: Page,
36-
createContextManager = true,
36+
// createContextManager = true,
3737
) {
3838
this.auth = new AuthPage(page)
3939
this.compatibility = new CompatibilityPage(page)
@@ -49,11 +49,11 @@ export class App {
4949
this.messages = new MessagesPage(page)
5050
this.context = page.context()
5151

52-
if (createContextManager) {
53-
const browser = page.context().browser()
54-
if (!browser) throw new Error('Could not get Browser from page.context().browser()')
55-
this.contextManager = new ContextManager(browser)
56-
}
52+
// if (createContextManager) {
53+
// const browser = page.context().browser()
54+
// if (!browser) throw new Error('Could not get Browser from page.context().browser()')
55+
// this.contextManager = new ContextManager(browser)
56+
// }
5757
}
5858

5959
async deleteProfileFromSettings() {

tests/e2e/web/specs/signIn.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -264,10 +264,10 @@ test.describe('when given valid input', () => {
264264
const message = 'This is a message'
265265
test('be able to send a message from the messages page', async ({
266266
app,
267+
app2: receiverApp,
267268
signedInAccount: sender,
268269
signedOutAccount: receiver,
269270
}) => {
270-
const receiverApp = await app.contextManager!.createContext()
271271
await receiverApp.signinWithEmail(receiver)
272272

273273
await app.home.clickMessagesLink()
@@ -281,10 +281,10 @@ test.describe('when given valid input', () => {
281281

282282
test('be able to send a message from the people page', async ({
283283
app,
284+
app2: receiverApp,
284285
signedInAccount: sender,
285286
signedOutAccount: receiver,
286287
}) => {
287-
const receiverApp = await app.contextManager!.createContext()
288288
await receiverApp.signinWithEmail(receiver)
289289

290290
// To pass the min character limit for message intro (250 chars)

0 commit comments

Comments
 (0)