Move playwright tests to use project references

This commit is contained in:
Daniel Imms
2024-07-07 09:06:26 -07:00
parent 215315b377
commit faed3e7c80
28 changed files with 97 additions and 62 deletions
+13
View File
@@ -29,54 +29,67 @@ jobs:
./lib/* \
./out/* \
./out-esbuild/* \
./out-esbuild-test/* \
./out-test/* \
./addons/addon-attach/lib/* \
./addons/addon-attach/out/* \
./addons/addon-attach/out-esbuild/* \
./addons/addon-attach/out-esbuild-test/* \
./addons/addon-attach/out-test/* \
./addons/addon-canvas/lib/* \
./addons/addon-canvas/out/* \
./addons/addon-canvas/out-esbuild/* \
./addons/addon-canvas/out-esbuild-test/* \
./addons/addon-canvas/out-test/* \
./addons/addon-clipboard/lib/* \
./addons/addon-clipboard/out/* \
./addons/addon-clipboard/out-esbuild/* \
./addons/addon-clipboard/out-esbuild-test/* \
./addons/addon-clipboard/out-test/* \
./addons/addon-fit/lib/* \
./addons/addon-fit/out/* \
./addons/addon-fit/out-esbuild/* \
./addons/addon-fit/out-esbuild-test/* \
./addons/addon-fit/out-test/* \
./addons/addon-image/lib/* \
./addons/addon-image/out/* \
./addons/addon-image/out-esbuild/* \
./addons/addon-image/out-esbuild-test/* \
./addons/addon-image/out-test/* \
./addons/addon-ligatures/lib/* \
./addons/addon-ligatures/out/* \
./addons/addon-ligatures/out-esbuild/* \
./addons/addon-ligatures/out-esbuild-test/* \
./addons/addon-ligatures/out-test/* \
./addons/addon-search/lib/* \
./addons/addon-search/out/* \
./addons/addon-search/out-esbuild/* \
./addons/addon-search/out-esbuild-test/* \
./addons/addon-search/out-test/* \
./addons/addon-serialize/lib/* \
./addons/addon-serialize/out/* \
./addons/addon-serialize/out-esbuild/* \
./addons/addon-serialize/out-esbuild-test/* \
./addons/addon-serialize/out-test/* \
./addons/addon-unicode11/lib/* \
./addons/addon-unicode11/out/* \
./addons/addon-unicode11/out-esbuild/* \
./addons/addon-unicode11/out-esbuild-test/* \
./addons/addon-unicode11/out-test/* \
./addons/addon-unicode-graphemes/lib/* \
./addons/addon-unicode-graphemes/out/* \
./addons/addon-unicode-graphemes/out-esbuild/* \
./addons/addon-unicode-graphemes/out-esbuild-test/* \
./addons/addon-unicode-graphemes/out-test/* \
./addons/addon-web-links/lib/* \
./addons/addon-web-links/out/* \
./addons/addon-web-links/out-esbuild/* \
./addons/addon-web-links/out-esbuild-test/* \
./addons/addon-web-links/out-test/* \
./addons/addon-webgl/lib/* \
./addons/addon-webgl/out/* \
./addons/addon-webgl/out-esbuild/* \
./addons/addon-webgl/out-esbuild-test/* \
./addons/addon-webgl/out-test/*
- name: Upload artifacts
uses: actions/upload-artifact@v3
+1 -1
View File
@@ -101,4 +101,4 @@ yarn test-integration --suite=core
yarn test-integration --suite=addon-search
```
These use `@playwright/test` to run all tests within the tsc test output (`out-test/`). These do not use the esbuild output because they require declaration files to get types to work.
These use `@playwright/test` to run all tests within the esbuild test output (`out-esbuild-test/`).
+1 -1
View File
@@ -6,7 +6,7 @@
import WebSocket = require('ws');
import test from '@playwright/test';
import { ITestContext, createTestContext, openTerminal, pollFor, timeout } from '../../../out-test/playwright/TestUtils';
import { ITestContext, createTestContext, openTerminal, pollFor, timeout } from '../../../test/playwright/TestUtils';
let ctx: ITestContext;
test.beforeAll(async ({ browser }) => {
+4 -2
View File
@@ -20,8 +20,7 @@
},
"strict": true,
"types": [
"../../../node_modules/@types/node",
"../../../out-test/playwright/TestUtils"
"../../../node_modules/@types/node"
]
},
"include": [
@@ -34,6 +33,9 @@
},
{
"path": "../../../src/browser"
},
{
"path": "../../../test/playwright"
}
]
}
@@ -4,8 +4,8 @@
*/
import test from '@playwright/test';
import { ISharedRendererTestContext, injectSharedRendererTests, injectSharedRendererTestsStandalone } from '../../../out-test/playwright/SharedRendererTests';
import { ITestContext, createTestContext, openTerminal } from '../../../out-test/playwright/TestUtils';
import { ISharedRendererTestContext, injectSharedRendererTests, injectSharedRendererTestsStandalone } from '../../../test/playwright/SharedRendererTests';
import { ITestContext, createTestContext, openTerminal } from '../../../test/playwright/TestUtils';
let ctx: ITestContext;
const ctxWrapper: ISharedRendererTestContext = {
+4 -3
View File
@@ -21,9 +21,7 @@
"strict": true,
"types": [
"../../../node_modules/@types/node",
"../../../node_modules/@lunapaint/png-codec",
"../../../out-test/playwright/TestUtils",
"../../../out-test/playwright/SharedRendererTests"
"../../../node_modules/@lunapaint/png-codec"
]
},
"include": [
@@ -36,6 +34,9 @@
},
{
"path": "../../../src/browser"
},
{
"path": "../../../test/playwright"
}
]
}
@@ -5,7 +5,7 @@
import test from '@playwright/test';
import { deepEqual, ok, strictEqual } from 'assert';
import { ITestContext, createTestContext, launchBrowser, openTerminal, timeout } from '../../../out-test/playwright/TestUtils';
import { ITestContext, createTestContext, launchBrowser, openTerminal, timeout } from '../../../test/playwright/TestUtils';
let ctx: ITestContext;
test.beforeAll(async ({ browser }, testInfo) => {
+4 -2
View File
@@ -20,8 +20,7 @@
},
"strict": true,
"types": [
"../../../node_modules/@types/node",
"../../../out-test/playwright/TestUtils"
"../../../node_modules/@types/node"
]
},
"include": [
@@ -34,6 +33,9 @@
},
{
"path": "../../../src/browser"
},
{
"path": "../../../test/playwright"
}
]
}
+1 -1
View File
@@ -5,7 +5,7 @@
import test from '@playwright/test';
import { deepEqual, ok, strictEqual } from 'assert';
import { ITestContext, createTestContext, openTerminal, timeout } from '../../../out-test/playwright/TestUtils';
import { ITestContext, createTestContext, openTerminal, timeout } from '../../../test/playwright/TestUtils';
let ctx: ITestContext;
test.beforeAll(async ({ browser }) => {
+4 -2
View File
@@ -20,8 +20,7 @@
},
"strict": true,
"types": [
"../../../node_modules/@types/node",
"../../../out-test/playwright/TestUtils"
"../../../node_modules/@types/node"
]
},
"include": [
@@ -34,6 +33,9 @@
},
{
"path": "../../../src/browser"
},
{
"path": "../../../test/playwright"
}
]
}
+1 -1
View File
@@ -6,7 +6,7 @@
import test from '@playwright/test';
import { readFileSync } from 'fs';
import { FINALIZER, introducer, sixelEncode } from 'sixel';
import { ITestContext, createTestContext, openTerminal, pollFor } from '../../../out-test/playwright/TestUtils';
import { ITestContext, createTestContext, openTerminal, pollFor } from '../../../test/playwright/TestUtils';
import { deepStrictEqual, ok, strictEqual } from 'assert';
/**
+4 -2
View File
@@ -20,8 +20,7 @@
},
"strict": true,
"types": [
"../../../node_modules/@types/node",
"../../../out-test/playwright/TestUtils"
"../../../node_modules/@types/node"
]
},
"include": [
@@ -34,6 +33,9 @@
},
{
"path": "../../../src/browser"
},
{
"path": "../../../test/playwright"
}
]
}
+1 -1
View File
@@ -7,7 +7,7 @@ import test from '@playwright/test';
import { deepStrictEqual, strictEqual } from 'assert';
import { readFile } from 'fs';
import { resolve } from 'path';
import { ITestContext, createTestContext, openTerminal, timeout } from '../../../out-test/playwright/TestUtils';
import { ITestContext, createTestContext, openTerminal, timeout } from '../../../test/playwright/TestUtils';
let ctx: ITestContext;
test.beforeAll(async ({ browser }) => {
+4 -2
View File
@@ -20,8 +20,7 @@
},
"strict": true,
"types": [
"../../../node_modules/@types/node",
"../../../out-test/playwright/TestUtils"
"../../../node_modules/@types/node"
]
},
"include": [
@@ -34,6 +33,9 @@
},
{
"path": "../../../src/browser"
},
{
"path": "../../../test/playwright"
}
]
}
@@ -7,7 +7,7 @@ import test from '@playwright/test';
import { deepStrictEqual, notDeepStrictEqual, strictEqual } from 'assert';
import { readFile } from 'fs';
import { resolve } from 'path';
import { ITestContext, createTestContext, openTerminal, timeout, writeSync } from '../../../out-test/playwright/TestUtils';
import { ITestContext, createTestContext, openTerminal, timeout, writeSync } from '../../../test/playwright/TestUtils';
const writeRawSync = (page: any, str: string): Promise<void> => writeSync(ctx.page, `' +` + JSON.stringify(str) + `+ '`);
+4 -2
View File
@@ -20,8 +20,7 @@
},
"strict": true,
"types": [
"../../../node_modules/@types/node",
"../../../out-test/playwright/TestUtils"
"../../../node_modules/@types/node"
]
},
"include": [
@@ -34,6 +33,9 @@
},
{
"path": "../../../src/browser"
},
{
"path": "../../../test/playwright"
}
]
}
@@ -5,7 +5,7 @@
import test from '@playwright/test';
import { deepStrictEqual, strictEqual } from 'assert';
import { ITestContext, createTestContext, openTerminal } from '../../../out-test/playwright/TestUtils';
import { ITestContext, createTestContext, openTerminal } from '../../../test/playwright/TestUtils';
let ctx: ITestContext;
test.beforeAll(async ({ browser }) => {
@@ -20,8 +20,7 @@
},
"strict": true,
"types": [
"../../../node_modules/@types/node",
"../../../out-test/playwright/TestUtils"
"../../../node_modules/@types/node"
]
},
"include": [
@@ -34,6 +33,9 @@
},
{
"path": "../../../src/browser"
},
{
"path": "../../../test/playwright"
}
]
}
@@ -5,7 +5,7 @@
import test from '@playwright/test';
import { deepStrictEqual } from 'assert';
import { ITestContext, createTestContext, openTerminal } from '../../../out-test/playwright/TestUtils';
import { ITestContext, createTestContext, openTerminal } from '../../../test/playwright/TestUtils';
let ctx: ITestContext;
test.beforeAll(async ({ browser }) => {
+4 -2
View File
@@ -20,8 +20,7 @@
},
"strict": true,
"types": [
"../../../node_modules/@types/node",
"../../../out-test/playwright/TestUtils"
"../../../node_modules/@types/node"
]
},
"include": [
@@ -34,6 +33,9 @@
},
{
"path": "../../../src/browser"
},
{
"path": "../../../test/playwright"
}
]
}
@@ -6,7 +6,7 @@ import test from '@playwright/test';
import { deepStrictEqual, strictEqual } from 'assert';
import { readFile } from 'fs';
import { resolve } from 'path';
import { ITestContext, createTestContext, openTerminal, pollFor, timeout } from '../../../out-test/playwright/TestUtils';
import { ITestContext, createTestContext, openTerminal, pollFor, timeout } from '../../../test/playwright/TestUtils';
interface ILinkStateData {
uri?: string;
+4 -2
View File
@@ -21,8 +21,7 @@
},
"strict": true,
"types": [
"../../../node_modules/@types/node",
"../../../out-test/playwright/TestUtils"
"../../../node_modules/@types/node"
]
},
"include": [
@@ -35,6 +34,9 @@
},
{
"path": "../../../src/browser"
},
{
"path": "../../../test/playwright"
}
]
}
@@ -4,8 +4,8 @@
*/
import test from '@playwright/test';
import { ISharedRendererTestContext, injectSharedRendererTests, injectSharedRendererTestsStandalone } from '../../../out-test/playwright/SharedRendererTests';
import { ITestContext, createTestContext, openTerminal } from '../../../out-test/playwright/TestUtils';
import { ISharedRendererTestContext, injectSharedRendererTests, injectSharedRendererTestsStandalone } from '../../../test/playwright/SharedRendererTests';
import { ITestContext, createTestContext, openTerminal } from '../../../test/playwright/TestUtils';
import { platform } from 'os';
let ctx: ITestContext;
+4 -3
View File
@@ -21,9 +21,7 @@
"strict": true,
"types": [
"../../../node_modules/@types/node",
"../../../node_modules/@lunapaint/png-codec",
"../../../out-test/playwright/TestUtils",
"../../../out-test/playwright/SharedRendererTests"
"../../../node_modules/@lunapaint/png-codec"
]
},
"include": [
@@ -36,6 +34,9 @@
},
{
"path": "../../../src/browser"
},
{
"path": "../../../test/playwright"
}
]
}
+21 -20
View File
@@ -92,10 +92,10 @@ let outConfig = {
let skipOut = false;
/** @type {esbuild.BuildOptions} */
// let outTestConfig = {
// format: 'cjs'
// }
// let skipOutTest = false;
let outTestConfig = {
format: 'cjs'
}
let skipOutTest = false;
if (config.addon) {
bundleConfig = {
@@ -108,14 +108,15 @@ if (config.addon) {
entryPoints: [`addons/addon-${config.addon}/src/**/*.ts`],
outdir: `addons/addon-${config.addon}/out-esbuild/`
};
// outTestConfig = {
// ...outConfig,
// entryPoints: [`addons/addon-${config.addon}/test/**/*.ts`],
// outdir: `addons/addon-${config.addon}/out-esbuild-test/`
// };
outTestConfig = {
...outConfig,
entryPoints: [`addons/addon-${config.addon}/test/**/*.ts`],
outdir: `addons/addon-${config.addon}/out-esbuild-test/`
};
if (config.addon === 'ligatures') {
bundleConfig.platform = 'node';
skipOutTest = true;
}
if (config.addon === 'serialize') {
@@ -173,11 +174,11 @@ if (config.addon) {
entryPoints: ['src/**/*.ts'],
outdir: 'out-esbuild/'
};
// outTestConfig = {
// ...outConfig,
// entryPoints: ['test/**/*.ts'],
// outdir: 'out-esbuild-test/'
// };
outTestConfig = {
...outConfig,
entryPoints: ['test/**/*.ts'],
outdir: 'out-esbuild-test/'
};
}
if (config.isWatch) {
@@ -185,15 +186,15 @@ if (config.isWatch) {
if (!skipOut) {
context(outConfig).then(e => e.watch());
}
// if (!skipOutTest) {
// context(outTestConfig).then(e => e.watch());
// }
if (!skipOutTest) {
context(outTestConfig).then(e => e.watch());
}
} else {
await build(bundleConfig);
if (!skipOut) {
await build(outConfig);
}
// if (!skipOutTest) {
// await build(outTestConfig);
// }
if (!skipOutTest) {
await build(outTestConfig);
}
}
+3 -3
View File
@@ -18,7 +18,7 @@ while (argv.some(e => e.startsWith('--suite='))) {
}
let configs = [
{ name: 'core', path: 'out-test/playwright/playwright.config.js' }
{ name: 'core', path: 'out-esbuild-test/playwright/playwright.config.js' }
];
const addons = [
'attach',
@@ -34,7 +34,7 @@ const addons = [
'webgl',
];
for (const addon of addons) {
configs.push({ name: `addon-${addon}`, path: `addons/addon-${addon}/out-test/playwright.config.js` });
configs.push({ name: `addon-${addon}`, path: `addons/addon-${addon}/out-esbuild-test/playwright.config.js` });
}
if (suiteFilter) {
@@ -61,8 +61,8 @@ async function run() {
if (run.error) {
console.error(run.error);
process.exit(run.status ?? -1);
}
process.exit(run.status ?? -1);
}
}
run();
+1 -1
View File
@@ -1313,7 +1313,7 @@ function getCellColor(ctx: ITestContext, col: number, row: number, position: Cel
let frameDetails: { cols: number, rows: number, decoded: IImage32 } | undefined = undefined;
async function getFrameDetails(ctx: ITestContext): Promise<{ cols: number, rows: number, decoded: IImage32 }> {
const screenshotOptions: LocatorScreenshotOptions | undefined = process.env.DEBUG ? { path: 'out-test/playwright/screenshot.png' } : undefined;
const screenshotOptions: LocatorScreenshotOptions | undefined = process.env.DEBUG ? { path: 'out-esbuild-test/playwright/screenshot.png' } : undefined;
const buffer = await ctx.page.locator('#terminal-container .xterm-screen').screenshot(screenshotOptions);
frameDetails = {
cols: await ctx.proxy.cols,
+1
View File
@@ -26,6 +26,7 @@
},
"target": "ESNext",
"module": "commonjs",
"composite": true
},
"include": [
"./**/*",