@empiricalrun/test-run 0.10.9 → 0.11.0
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/dashboard.d.ts.map +1 -1
- package/dist/dashboard.js +7 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/lib/cmd.js +1 -1
- package/dist/utils/config.d.ts +1 -9
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +42 -5
- package/eslint.config.mjs +16 -0
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
package/dist/dashboard.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG7C,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAIF,eAAO,MAAM,wBAAwB,GACnC,aAAa,MAAM,EACnB,iBAAiB,MAAM,KACtB,OAAO,CAAC;IACT,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC;CACd,CAwDA,CAAC;AAEF,eAAO,MAAM,yBAAyB,QAAa,OAAO,CACxD,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG7C,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAIF,eAAO,MAAM,wBAAwB,GACnC,aAAa,MAAM,EACnB,iBAAiB,MAAM,KACtB,OAAO,CAAC;IACT,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC;CACd,CAwDA,CAAC;AAEF,eAAO,MAAM,yBAAyB,QAAa,OAAO,CACxD,mBAAmB,EAAE,CAkDtB,CAAC"}
|
package/dist/dashboard.js
CHANGED
|
@@ -47,9 +47,14 @@ const fetchEnvironmentVariables = async () => {
|
|
|
47
47
|
if (!process.env.EMPIRICALRUN_API_KEY) {
|
|
48
48
|
return [];
|
|
49
49
|
}
|
|
50
|
+
const testRunId = process.env.TEST_RUN_GITHUB_ACTION_ID;
|
|
51
|
+
if (!testRunId) {
|
|
52
|
+
console.log("No test run ID found, skipping environment variables fetch");
|
|
53
|
+
return [];
|
|
54
|
+
}
|
|
50
55
|
try {
|
|
51
56
|
const data = await (0, async_retry_1.default)(async () => {
|
|
52
|
-
const envVarsResp = await fetch(`${DOMAIN}/api/environment-variables`, {
|
|
57
|
+
const envVarsResp = await fetch(`${DOMAIN}/api/test-runs/${testRunId}/environment-variables`, {
|
|
53
58
|
method: "GET",
|
|
54
59
|
headers: {
|
|
55
60
|
"Content-Type": "application/json",
|
|
@@ -71,7 +76,7 @@ const fetchEnvironmentVariables = async () => {
|
|
|
71
76
|
});
|
|
72
77
|
return data && data.data ? data.data.environment_variables : [];
|
|
73
78
|
}
|
|
74
|
-
catch
|
|
79
|
+
catch {
|
|
75
80
|
return [];
|
|
76
81
|
}
|
|
77
82
|
};
|
package/dist/index.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ export declare function runSingleTest({ testName, suites, filePath, projects, en
|
|
|
16
16
|
hasTestPassed: boolean;
|
|
17
17
|
summaryJson: PlaywrightJSONReport;
|
|
18
18
|
}>;
|
|
19
|
-
export declare function
|
|
19
|
+
export declare function listProjectsAndTests(repoDir: string): Promise<{
|
|
20
20
|
projects: string[];
|
|
21
21
|
projectsToTestCases: Record<string, TestCase[]>;
|
|
22
22
|
}>;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAI/E,OAAO,EAAkB,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE7C,OAAO,EAAE,+BAA+B,EAAE,MAAM,gBAAgB,CAAC;AAMjE,OAAO,EACL,+BAA+B,EAC/B,QAAQ,EACR,mBAAmB,EACnB,QAAQ,GACT,CAAC;AACF,OAAO,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAc/E,wBAAsB,aAAa,CAAC,EAClC,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,OAAO,GACR,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;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC;IACV,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,oBAAoB,CAAC;CACnC,CAAC,CAiBD;AAED,wBAAsB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAI/E,OAAO,EAAkB,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE7C,OAAO,EAAE,+BAA+B,EAAE,MAAM,gBAAgB,CAAC;AAMjE,OAAO,EACL,+BAA+B,EAC/B,QAAQ,EACR,mBAAmB,EACnB,QAAQ,GACT,CAAC;AACF,OAAO,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAc/E,wBAAsB,aAAa,CAAC,EAClC,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,OAAO,GACR,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;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC;IACV,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,oBAAoB,CAAC;CACnC,CAAC,CAiBD;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IACnE,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,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.generateProjectFilters = exports.filterArrayByGlobMatchersSet = exports.spawnCmd = exports.runSpecificTestsCmd = exports.Platform = exports.getProjectsFromPlaywrightConfig = void 0;
|
|
7
7
|
exports.runSingleTest = runSingleTest;
|
|
8
|
-
exports.
|
|
8
|
+
exports.listProjectsAndTests = listProjectsAndTests;
|
|
9
9
|
const fs_1 = __importDefault(require("fs"));
|
|
10
10
|
const path_1 = __importDefault(require("path"));
|
|
11
11
|
const cmd_1 = require("./lib/cmd");
|
|
@@ -49,7 +49,7 @@ async function runSingleTest({ testName, suites, filePath, projects, envOverride
|
|
|
49
49
|
summaryJson,
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
|
-
async function
|
|
52
|
+
async function listProjectsAndTests(repoDir) {
|
|
53
53
|
const testRunner = (0, utils_1.getTestRunner)(types_1.Platform.WEB);
|
|
54
54
|
const args = [testRunner, "test", "--list"];
|
|
55
55
|
const { output, code } = await (0, cmd_1.spawnCmd)("npx", args, {
|
package/dist/lib/cmd.js
CHANGED
package/dist/utils/config.d.ts
CHANGED
|
@@ -1,12 +1,4 @@
|
|
|
1
|
+
import { PlaywrightProject } from "@empiricalrun/shared-types";
|
|
1
2
|
import { Platform } from "../types";
|
|
2
|
-
type PlaywrightProject = {
|
|
3
|
-
name: string;
|
|
4
|
-
use: any;
|
|
5
|
-
testMatch: string[] | string | undefined;
|
|
6
|
-
testIgnore: string[] | string | undefined;
|
|
7
|
-
testDir: string | undefined;
|
|
8
|
-
teardown: string | undefined;
|
|
9
|
-
};
|
|
10
3
|
export declare function getProjectsFromPlaywrightConfig(platform: Platform, repoDir: string): Promise<PlaywrightProject[]>;
|
|
11
|
-
export {};
|
|
12
4
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAK/D,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,wBAAsB,+BAA+B,CACnD,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAyE9B"}
|
package/dist/utils/config.js
CHANGED
|
@@ -14,10 +14,35 @@ async function getProjectsFromPlaywrightConfig(platform, repoDir) {
|
|
|
14
14
|
const configPath = path_1.default.join(repoDir, configName);
|
|
15
15
|
const tmpScriptPath = path_1.default.join(repoDir, "temp-extract-projects.js");
|
|
16
16
|
fs_1.default.writeFileSync(tmpScriptPath, `
|
|
17
|
-
//
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
// Custom serializer that handles regex objects and functions
|
|
18
|
+
function serializeWithSpecialTypes(obj) {
|
|
19
|
+
return JSON.stringify(obj, (key, value) => {
|
|
20
|
+
if (value instanceof RegExp) {
|
|
21
|
+
return {
|
|
22
|
+
__regex: true,
|
|
23
|
+
source: value.source,
|
|
24
|
+
flags: value.flags
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
if (typeof value === 'function') {
|
|
28
|
+
return {
|
|
29
|
+
__function: true,
|
|
30
|
+
source: value.toString()
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
return value;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
try {
|
|
38
|
+
// Import the config directly with the full path
|
|
39
|
+
const configModule = require('${configPath.replace(/\\/g, "\\\\")}');
|
|
40
|
+
const projects = configModule.default?.projects || configModule.projects || [];
|
|
41
|
+
console.log(serializeWithSpecialTypes(projects));
|
|
42
|
+
} catch (error) {
|
|
43
|
+
console.error('Error loading config:', error.message);
|
|
44
|
+
console.log('[]'); // Return empty array on error
|
|
45
|
+
}
|
|
21
46
|
`);
|
|
22
47
|
const result = (0, child_process_1.execSync)(`npx -y ts-node@latest "${tmpScriptPath}"`, {
|
|
23
48
|
encoding: "utf8",
|
|
@@ -29,7 +54,19 @@ async function getProjectsFromPlaywrightConfig(platform, repoDir) {
|
|
|
29
54
|
cwd: repoDir,
|
|
30
55
|
});
|
|
31
56
|
fs_1.default.unlinkSync(tmpScriptPath);
|
|
32
|
-
|
|
57
|
+
// Custom deserializer that reconstructs regex objects
|
|
58
|
+
const projects = JSON.parse(result, (key, value) => {
|
|
59
|
+
if (value && typeof value === "object") {
|
|
60
|
+
if (value.__regex) {
|
|
61
|
+
return new RegExp(value.source, value.flags);
|
|
62
|
+
}
|
|
63
|
+
if (value.__function) {
|
|
64
|
+
// Note: Functions can't be fully reconstructed, but we preserve the source
|
|
65
|
+
return value.source;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return value;
|
|
69
|
+
});
|
|
33
70
|
return projects;
|
|
34
71
|
}
|
|
35
72
|
catch (error) {
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import libraryConfig from "../eslint-config/library.mjs";
|
|
2
|
+
import tsParser from "@typescript-eslint/parser";
|
|
3
|
+
|
|
4
|
+
export default [
|
|
5
|
+
...libraryConfig,
|
|
6
|
+
{
|
|
7
|
+
files: ["src/**/*.ts", "src/**/*.tsx"],
|
|
8
|
+
languageOptions: {
|
|
9
|
+
parser: tsParser,
|
|
10
|
+
parserOptions: {
|
|
11
|
+
project: "./tsconfig.lint.json",
|
|
12
|
+
tsconfigRootDir: import.meta.dirname,
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@empiricalrun/test-run",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"registry": "https://registry.npmjs.org/",
|
|
6
6
|
"access": "public"
|
|
@@ -27,7 +27,8 @@
|
|
|
27
27
|
"@types/console-log-level": "^1.4.5",
|
|
28
28
|
"@types/node": "^22.5.5",
|
|
29
29
|
"@playwright/test": "1.53.2",
|
|
30
|
-
"memfs": "^4.17.1"
|
|
30
|
+
"memfs": "^4.17.1",
|
|
31
|
+
"@empiricalrun/shared-types": "0.10.0"
|
|
31
32
|
},
|
|
32
33
|
"scripts": {
|
|
33
34
|
"dev": "tsc --build --watch",
|