@cotestdev/ai-runner-fake 0.0.5 → 0.0.7
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/dist/runner.d.ts +2 -4
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +17 -13
- package/dist/runner.js.map +1 -1
- package/package.json +1 -1
- package/src/runner.ts +23 -18
package/dist/runner.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export declare class Runner {
|
|
2
2
|
private abortController;
|
|
3
|
-
private variables;
|
|
4
3
|
private projectId;
|
|
5
4
|
private testCaseId;
|
|
6
5
|
private state?;
|
|
@@ -14,10 +13,9 @@ export declare class Runner {
|
|
|
14
13
|
has(key: string): boolean;
|
|
15
14
|
delete(key: string): boolean;
|
|
16
15
|
clear(): void;
|
|
17
|
-
keys(): string[];
|
|
18
16
|
getAll(): Record<string, unknown>;
|
|
19
17
|
private loadTestScript;
|
|
20
|
-
runScript(testId: string, script: string): Promise<
|
|
21
|
-
reuseTest(useTestCaseId: string, description?: string): Promise<
|
|
18
|
+
runScript(testId: string, script: string): Promise<Record<string, unknown>>;
|
|
19
|
+
reuseTest(useTestCaseId: string, description?: string): Promise<Record<string, unknown>>;
|
|
22
20
|
}
|
|
23
21
|
//# sourceMappingURL=runner.d.ts.map
|
package/dist/runner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAYA,qBAAa,MAAM;IACjB,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,KAAK,CAAC,CAAQ;IAEtB,OAAO;IAMP,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,OAAc,GAAG,MAAM;IAK1F,IAAI;IAIE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IASxE,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC;IAQzD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAInC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG;IAOrB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IASzB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI5B,KAAK,IAAI,IAAI;IAIb,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIjC,OAAO,CAAC,cAAc;IAKhB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAwB3E,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAQ/F"}
|
package/dist/runner.js
CHANGED
|
@@ -39,7 +39,6 @@ const os_1 = require("os");
|
|
|
39
39
|
const fs_1 = require("fs");
|
|
40
40
|
class Runner {
|
|
41
41
|
constructor(projectId, testCaseId) {
|
|
42
|
-
this.variables = new Map();
|
|
43
42
|
this.abortController = new AbortController();
|
|
44
43
|
this.projectId = projectId;
|
|
45
44
|
this.testCaseId = testCaseId;
|
|
@@ -55,7 +54,8 @@ class Runner {
|
|
|
55
54
|
this.state = {
|
|
56
55
|
page: page,
|
|
57
56
|
context: context,
|
|
58
|
-
variables:
|
|
57
|
+
variables: {},
|
|
58
|
+
fixedVariables: data ?? {},
|
|
59
59
|
};
|
|
60
60
|
}
|
|
61
61
|
async runStep(description, fn) {
|
|
@@ -67,25 +67,29 @@ class Runner {
|
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
set(key, value) {
|
|
70
|
-
this.variables
|
|
70
|
+
this.state.variables[key] = value;
|
|
71
71
|
}
|
|
72
72
|
get(key) {
|
|
73
|
-
|
|
73
|
+
const value = this.state.variables[key];
|
|
74
|
+
if (!value) {
|
|
75
|
+
return this.state.fixedVariables[key];
|
|
76
|
+
}
|
|
74
77
|
}
|
|
75
78
|
has(key) {
|
|
76
|
-
|
|
79
|
+
const value = this.state.variables[key];
|
|
80
|
+
if (value) {
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
return key in this.state.fixedVariables;
|
|
77
84
|
}
|
|
78
85
|
delete(key) {
|
|
79
|
-
return this.variables
|
|
86
|
+
return delete this.state.variables[key];
|
|
80
87
|
}
|
|
81
88
|
clear() {
|
|
82
|
-
this.variables.
|
|
83
|
-
}
|
|
84
|
-
keys() {
|
|
85
|
-
return Array.from(this.variables.keys());
|
|
89
|
+
Object.keys(this.state.variables).forEach(key => delete this.state.variables[key]);
|
|
86
90
|
}
|
|
87
91
|
getAll() {
|
|
88
|
-
return
|
|
92
|
+
return { ...this.state.fixedVariables, ...this.state.variables };
|
|
89
93
|
}
|
|
90
94
|
loadTestScript(testCaseId) {
|
|
91
95
|
const scriptPath = (0, path_1.join)((0, os_1.homedir)(), '.test_agent', 'projects', this.projectId, 'script', `${testCaseId}.ts`);
|
|
@@ -93,7 +97,7 @@ class Runner {
|
|
|
93
97
|
}
|
|
94
98
|
async runScript(testId, script) {
|
|
95
99
|
const reuseRunner = Runner.NewInstance(this.projectId, testId);
|
|
96
|
-
await reuseRunner.init(this.state.page, this.state.context);
|
|
100
|
+
await reuseRunner.init(this.state.page, this.state.context, { ...this.getAll() });
|
|
97
101
|
console.log(`Starting to execute reusable test case: ${testId}`);
|
|
98
102
|
try {
|
|
99
103
|
const executeScript = new Function('runner', 'page', 'context', 'expect', `
|
|
@@ -104,7 +108,7 @@ class Runner {
|
|
|
104
108
|
const { expect } = await Promise.resolve().then(() => __importStar(require('@playwright/test')));
|
|
105
109
|
await executeScript(reuseRunner, this.state.page, this.state.context, expect);
|
|
106
110
|
console.log(`Reusable test case executed successfully`);
|
|
107
|
-
return reuseRunner.state?.variables ||
|
|
111
|
+
return { ...reuseRunner.state?.variables || {} };
|
|
108
112
|
}
|
|
109
113
|
catch (error) {
|
|
110
114
|
throw new Error(`reuseTest execution failed, error: ${error instanceof Error ? error.message : String(error)}`);
|
package/dist/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA4B;AAC5B,2BAA6B;AAC7B,2BAAkC;
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/runner.ts
CHANGED
|
@@ -6,12 +6,12 @@ import { readFileSync } from 'fs';
|
|
|
6
6
|
interface State {
|
|
7
7
|
context: any;
|
|
8
8
|
page: any;
|
|
9
|
-
variables:
|
|
9
|
+
variables: Record<string, any>;
|
|
10
|
+
fixedVariables: Record<string, any>;
|
|
10
11
|
}
|
|
11
12
|
|
|
12
13
|
export class Runner {
|
|
13
14
|
private abortController: AbortController;
|
|
14
|
-
private variables: Map<string, any> = new Map<string, any>();
|
|
15
15
|
private projectId: string;
|
|
16
16
|
private testCaseId: string;
|
|
17
17
|
private state?: State;
|
|
@@ -35,7 +35,8 @@ export class Runner {
|
|
|
35
35
|
this.state = {
|
|
36
36
|
page: page,
|
|
37
37
|
context: context,
|
|
38
|
-
variables:
|
|
38
|
+
variables: {},
|
|
39
|
+
fixedVariables: data ?? {},
|
|
39
40
|
}
|
|
40
41
|
}
|
|
41
42
|
|
|
@@ -47,32 +48,36 @@ export class Runner {
|
|
|
47
48
|
}
|
|
48
49
|
}
|
|
49
50
|
|
|
50
|
-
|
|
51
|
-
this.variables
|
|
51
|
+
set(key: string, value: any): void {
|
|
52
|
+
this.state!.variables[key] = value;
|
|
52
53
|
}
|
|
53
54
|
|
|
54
55
|
get(key: string): any {
|
|
55
|
-
|
|
56
|
+
const value = this.state!.variables[key];
|
|
57
|
+
if (!value) {
|
|
58
|
+
return this.state!.fixedVariables[key];
|
|
59
|
+
}
|
|
56
60
|
}
|
|
57
61
|
|
|
58
62
|
has(key: string): boolean {
|
|
59
|
-
|
|
63
|
+
const value = this.state!.variables[key];
|
|
64
|
+
if (value) {
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return key in this.state!.fixedVariables;
|
|
60
69
|
}
|
|
61
70
|
|
|
62
71
|
delete(key: string): boolean {
|
|
63
|
-
return this.variables
|
|
72
|
+
return delete this.state!.variables[key];
|
|
64
73
|
}
|
|
65
74
|
|
|
66
75
|
clear(): void {
|
|
67
|
-
this.variables.
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
keys(): string[] {
|
|
71
|
-
return Array.from(this.variables.keys());
|
|
76
|
+
Object.keys(this.state!.variables).forEach(key => delete this.state!.variables[key]);
|
|
72
77
|
}
|
|
73
78
|
|
|
74
79
|
getAll(): Record<string, unknown> {
|
|
75
|
-
return
|
|
80
|
+
return { ...this.state!.fixedVariables, ...this.state!.variables };
|
|
76
81
|
}
|
|
77
82
|
|
|
78
83
|
private loadTestScript(testCaseId: string): string {
|
|
@@ -80,9 +85,9 @@ export class Runner {
|
|
|
80
85
|
return readFileSync(scriptPath, 'utf-8');
|
|
81
86
|
}
|
|
82
87
|
|
|
83
|
-
async runScript(testId: string, script: string): Promise<
|
|
88
|
+
async runScript(testId: string, script: string): Promise<Record<string, unknown>> {
|
|
84
89
|
const reuseRunner = Runner.NewInstance(this.projectId, testId);
|
|
85
|
-
await reuseRunner.init(this.state!.page, this.state!.context);
|
|
90
|
+
await reuseRunner.init(this.state!.page, this.state!.context, { ...this.getAll() });
|
|
86
91
|
|
|
87
92
|
console.log(`Starting to execute reusable test case: ${testId}`);
|
|
88
93
|
|
|
@@ -98,13 +103,13 @@ export class Runner {
|
|
|
98
103
|
|
|
99
104
|
console.log(`Reusable test case executed successfully`);
|
|
100
105
|
|
|
101
|
-
return reuseRunner.state?.variables ||
|
|
106
|
+
return { ...reuseRunner.state?.variables || {} };
|
|
102
107
|
} catch (error) {
|
|
103
108
|
throw new Error(`reuseTest execution failed, error: ${error instanceof Error ? error.message : String(error)}`);
|
|
104
109
|
}
|
|
105
110
|
}
|
|
106
111
|
|
|
107
|
-
async reuseTest(useTestCaseId: string, description?: string): Promise<
|
|
112
|
+
async reuseTest(useTestCaseId: string, description?: string): Promise<Record<string, unknown>> {
|
|
108
113
|
const scriptContent = this.loadTestScript(useTestCaseId);
|
|
109
114
|
if (!scriptContent) {
|
|
110
115
|
throw new Error(`Reusable test script not found: ${useTestCaseId}`);
|