Reduce side effects

This commit is contained in:
tisilent
2023-09-14 00:47:37 +08:00
parent 871400f407
commit 27d89c2311
2 changed files with 28 additions and 12 deletions
+2 -2
View File
@@ -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);
});
+26 -10
View File
@@ -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]);
});
});
}