From 27d89c231127e89ff4271ed38f1e763d8da8ef1b Mon Sep 17 00:00:00 2001 From: tisilent Date: Thu, 14 Sep 2023 00:47:37 +0800 Subject: [PATCH] Reduce side effects --- test/playwright/Renderer.test.ts | 4 +-- test/playwright/SharedRendererTests.ts | 36 +++++++++++++++++++------- 2 files changed, 28 insertions(+), 12 deletions(-) diff --git a/test/playwright/Renderer.test.ts b/test/playwright/Renderer.test.ts index c5c1e94d..965b1640 100644 --- a/test/playwright/Renderer.test.ts +++ b/test/playwright/Renderer.test.ts @@ -5,7 +5,7 @@ import { test } from '@playwright/test'; import { ITestContext, createTestContext, openTerminal } from './TestUtils'; -import { ISharedRendererTestContext, injectSharedRendererTests } from './SharedRendererTests'; +import { ISharedRendererTestContext, injectSharedRendererOnceTests, injectSharedRendererTests } from './SharedRendererTests'; let ctx: ITestContext; const ctxWrapper: ISharedRendererTestContext = { value: undefined } as any; @@ -18,5 +18,5 @@ test.afterAll(async () => await ctx.page.close()); test.describe('DOM Renderer Integration Tests', () => { injectSharedRendererTests(ctxWrapper); + injectSharedRendererOnceTests(ctxWrapper); }); - diff --git a/test/playwright/SharedRendererTests.ts b/test/playwright/SharedRendererTests.ts index ae35fc28..261ad6e8 100644 --- a/test/playwright/SharedRendererTests.ts +++ b/test/playwright/SharedRendererTests.ts @@ -1147,22 +1147,38 @@ export function injectSharedRendererTests(ctx: ISharedRendererTestContext): void await ctx.value.proxy.selectAll(); await pollFor(ctx.value.page, () => getCellColor(ctx.value, 1, 1), [0, 0, 255, 255]); }); + }); +} + +export function injectSharedRendererOnceTests(inctx: ISharedRendererTestContext): void { + let ctx: ITestContext; + test.beforeEach(async () => { + ctx = await createTestContext(inctx.value.browser); + await openTerminal(ctx); + ctx.page.evaluate(` + window.term.options.minimumContrastRatio = 1; + window.term.options.allowTransparency = false; + window.term.options.theme = undefined; + `); + // Clear the cached screenshot before each test + frameDetails = undefined; + }); + test.afterEach(async () => { + ctx.page.close(); + }); + test.describe('regression tests', () => { test('#4790: cursor should not be displayed before focusing', async () => { const theme: ITheme = { cursor: '#0000FF' }; - const octx = await createTestContext(ctx.value.browser); - await openTerminal(octx); - await octx.page.evaluate(`window.term.options.theme = ${JSON.stringify(theme)};`); + await ctx.page.evaluate(`window.term.options.theme = ${JSON.stringify(theme)};`); + await pollFor(ctx.page, () => getCellColor(ctx, 1, 1), [0, 0, 0, 255]); + await ctx.proxy.focus(); frameDetails = undefined; - await pollFor(octx.page, () => getCellColor(octx, 1, 1), [0, 0, 0, 255]); - await octx.proxy.focus(); + await pollFor(ctx.page, () => getCellColor(ctx, 1, 1), [0, 0, 255, 255]); + await ctx.proxy.blur(); frameDetails = undefined; - await pollFor(octx.page, () => getCellColor(octx, 1, 1), [0, 0, 255, 255]); - await octx.proxy.blur(); - frameDetails = undefined; - await pollFor(octx.page, () => getCellColor(octx, 1, 1), [0, 0, 0, 255]); - octx.page.close(); + await pollFor(ctx.page, () => getCellColor(ctx, 1, 1), [0, 0, 0, 255]); }); }); }