@empiricalrun/test-run 0.9.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -0
- package/dist/lib/cmd.d.ts +2 -2
- package/dist/lib/cmd.d.ts.map +1 -1
- package/dist/lib/cmd.js +1 -1
- package/dist/parser/index.d.ts +6 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +42 -0
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { runSpecificTestsCmd } from "./lib/run-specific-test";
|
|
2
|
+
import { TestCase } from "./types";
|
|
2
3
|
export { runSpecificTestsCmd };
|
|
3
4
|
export declare function runSingleTest({ testName, suites, fileName, projects, envOverrides, }: {
|
|
4
5
|
testName: string;
|
|
@@ -10,4 +11,8 @@ export declare function runSingleTest({ testName, suites, fileName, projects, en
|
|
|
10
11
|
hasTestPassed: boolean;
|
|
11
12
|
summaryJson: any;
|
|
12
13
|
}>;
|
|
14
|
+
export declare function getAllPlaywrightProjects(repoDir: string): Promise<{
|
|
15
|
+
projects: string[];
|
|
16
|
+
projectsToTestCases: Record<string, TestCase[]>;
|
|
17
|
+
}>;
|
|
13
18
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAY,QAAQ,EAAE,MAAM,SAAS,CAAC;AAO7C,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAE/B,wBAAsB,aAAa,CAAC,EAClC,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,YAAY,GACb,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;;;GAqBA;AAED,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IACvE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;CACjD,CAAC,CAaD"}
|
package/dist/index.js
CHANGED
|
@@ -5,12 +5,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.runSpecificTestsCmd = void 0;
|
|
7
7
|
exports.runSingleTest = runSingleTest;
|
|
8
|
+
exports.getAllPlaywrightProjects = getAllPlaywrightProjects;
|
|
8
9
|
const promises_1 = __importDefault(require("fs/promises"));
|
|
9
10
|
const path_1 = __importDefault(require("path"));
|
|
10
11
|
const cmd_1 = require("./lib/cmd");
|
|
11
12
|
const run_specific_test_1 = require("./lib/run-specific-test");
|
|
12
13
|
Object.defineProperty(exports, "runSpecificTestsCmd", { enumerable: true, get: function () { return run_specific_test_1.runSpecificTestsCmd; } });
|
|
14
|
+
const parser_1 = require("./parser");
|
|
13
15
|
const types_1 = require("./types");
|
|
16
|
+
const utils_1 = require("./utils");
|
|
14
17
|
// For test-run package, the library entrypoint, we only support web platform
|
|
15
18
|
// The bin entrypoint has support for mobile also
|
|
16
19
|
const supportedPlatform = types_1.Platform.WEB;
|
|
@@ -32,3 +35,17 @@ async function runSingleTest({ testName, suites, fileName, projects, envOverride
|
|
|
32
35
|
summaryJson,
|
|
33
36
|
};
|
|
34
37
|
}
|
|
38
|
+
async function getAllPlaywrightProjects(repoDir) {
|
|
39
|
+
const testRunner = (0, utils_1.getTestRunner)(types_1.Platform.WEB);
|
|
40
|
+
const env = Object({ ...process.env });
|
|
41
|
+
const args = [testRunner, "test", "--list"];
|
|
42
|
+
const { output, code } = await (0, cmd_1.spawnCmd)("npx", args, {
|
|
43
|
+
env,
|
|
44
|
+
cwd: repoDir,
|
|
45
|
+
captureOutput: true,
|
|
46
|
+
});
|
|
47
|
+
if (!output) {
|
|
48
|
+
throw new Error(`Failed to run list command; exit code: ${code}`);
|
|
49
|
+
}
|
|
50
|
+
return (0, parser_1.parseTestListOutput)(output);
|
|
51
|
+
}
|
package/dist/lib/cmd.d.ts
CHANGED
|
@@ -10,8 +10,8 @@ export declare function spawnCmd(command: string, args: string[], options: {
|
|
|
10
10
|
env?: Record<string, string>;
|
|
11
11
|
cwd?: string;
|
|
12
12
|
captureOutput?: boolean;
|
|
13
|
-
}): Promise<
|
|
13
|
+
}): Promise<{
|
|
14
14
|
code: number;
|
|
15
|
-
output
|
|
15
|
+
output?: string;
|
|
16
16
|
}>;
|
|
17
17
|
//# sourceMappingURL=cmd.d.ts.map
|
package/dist/lib/cmd.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmd.d.ts","sourceRoot":"","sources":["../../src/lib/cmd.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,CAeA;AAED,wBAAsB,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,YAAY;;GASxE;AAED,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE;IACP,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,GACA,OAAO,CAAC
|
|
1
|
+
{"version":3,"file":"cmd.d.ts","sourceRoot":"","sources":["../../src/lib/cmd.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,CAeA;AAED,wBAAsB,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,YAAY;;GASxE;AAED,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE;IACP,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,GACA,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA6C5C"}
|
package/dist/lib/cmd.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG;IACnD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;CACjD,CA0CA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseTestListOutput = parseTestListOutput;
|
|
4
|
+
function parseTestListOutput(output) {
|
|
5
|
+
// Parse the output to extract test information
|
|
6
|
+
// Example format: "[chromium] › home.spec.ts:9:9 › describe 1 › describe 2 › has title"
|
|
7
|
+
let projectsToTestCases = {};
|
|
8
|
+
let projects = [];
|
|
9
|
+
output
|
|
10
|
+
.split("\n")
|
|
11
|
+
.filter((line) => line.trim() && line.trim().startsWith("[") && line.includes(".ts:"))
|
|
12
|
+
.forEach((line) => {
|
|
13
|
+
// Extract project, file, line, and test name with suites
|
|
14
|
+
const match = line.match(/\[(.*?)\]\s+›\s+(.*?):(\d+):\d+\s+›\s+(.*)/);
|
|
15
|
+
if (!match || !match[1] || !match[2] || !match[3] || !match[4]) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const project = match[1];
|
|
19
|
+
if (!projects.includes(project)) {
|
|
20
|
+
projects.push(project);
|
|
21
|
+
projectsToTestCases[project] = [];
|
|
22
|
+
}
|
|
23
|
+
const file = match[2];
|
|
24
|
+
const fullTestName = match[4];
|
|
25
|
+
const parts = fullTestName.split("›").map((p) => p.trim());
|
|
26
|
+
if (parts.length === 0) {
|
|
27
|
+
throw new Error(`Invalid test name: ${fullTestName}`);
|
|
28
|
+
}
|
|
29
|
+
const name = parts[parts.length - 1];
|
|
30
|
+
if (!name) {
|
|
31
|
+
throw new Error(`Invalid test name: ${fullTestName}`);
|
|
32
|
+
}
|
|
33
|
+
const describeBlockNames = parts.length > 1 ? parts.slice(0, -1) : undefined;
|
|
34
|
+
const testCase = {
|
|
35
|
+
name,
|
|
36
|
+
filePath: file,
|
|
37
|
+
suites: describeBlockNames,
|
|
38
|
+
};
|
|
39
|
+
projectsToTestCases[project].push(testCase);
|
|
40
|
+
});
|
|
41
|
+
return { projects, projectsToTestCases };
|
|
42
|
+
}
|
package/package.json
CHANGED
package/tsconfig.tsbuildinfo
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["./src/dashboard.ts","./src/index.ts","./src/bin/index.ts","./src/lib/cmd.ts","./src/lib/run-all-tests.ts","./src/lib/run-specific-test.ts","./src/lib/memfs/read-hello-world.ts","./src/types/index.ts","./src/utils/config-parser.ts","./src/utils/config.ts","./src/utils/index.ts"],"version":"5.8.3"}
|
|
1
|
+
{"root":["./src/dashboard.ts","./src/index.ts","./src/bin/index.ts","./src/lib/cmd.ts","./src/lib/run-all-tests.ts","./src/lib/run-specific-test.ts","./src/lib/memfs/read-hello-world.ts","./src/parser/index.ts","./src/types/index.ts","./src/utils/config-parser.ts","./src/utils/config.ts","./src/utils/index.ts"],"version":"5.8.3"}
|