@ai-support-agent/cli 0.1.30-beta.0 → 0.1.30-beta.2

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.
@@ -0,0 +1,24 @@
1
+ export interface PlaywrightRunnerResult {
2
+ success: boolean;
3
+ passed: number;
4
+ failed: number;
5
+ skipped: number;
6
+ totalSteps: number;
7
+ results: PlaywrightTestResult[];
8
+ errorOutput?: string;
9
+ }
10
+ export interface PlaywrightTestResult {
11
+ title: string;
12
+ status: 'passed' | 'failed' | 'skipped' | 'timedOut';
13
+ duration: number;
14
+ error?: string;
15
+ }
16
+ /**
17
+ * Playwright テストスクリプトをサブプロセスで実行し、結果を返す。
18
+ *
19
+ * @param scriptContent - 実行する JavaScript テストコード
20
+ * @param executionId - ログ追跡用の実行 ID(英数字・ハイフン・アンダースコアのみ許可)
21
+ * @param agentRootDir - エージェントのルートディレクトリ(node_modules/.bin/playwright が存在する場所)
22
+ */
23
+ export declare function runPlaywrightScript(scriptContent: string, executionId: string, agentRootDir: string): Promise<PlaywrightRunnerResult>;
24
+ //# sourceMappingURL=playwright-test-runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playwright-test-runner.d.ts","sourceRoot":"","sources":["../../src/browser/playwright-test-runner.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,oBAAoB,EAAE,CAAA;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAA;IACpD,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAgJD;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,sBAAsB,CAAC,CAkDjC"}
@@ -0,0 +1,191 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.runPlaywrightScript = runPlaywrightScript;
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
39
+ const child_process_1 = require("child_process");
40
+ const logger_1 = require("../logger");
41
+ const utils_1 = require("../utils");
42
+ /**
43
+ * Playwright JSON reporter output を再帰的に走査して TestResult を収集する。
44
+ */
45
+ function collectSpecs(suite, results) {
46
+ for (const spec of suite.specs ?? []) {
47
+ const title = spec.title ?? '';
48
+ for (const test of spec.tests ?? []) {
49
+ for (const result of test.results ?? []) {
50
+ const rawStatus = result.status;
51
+ const status = rawStatus === 'passed' || rawStatus === 'failed' || rawStatus === 'timedOut'
52
+ ? rawStatus
53
+ : 'skipped';
54
+ const errorMsg = result.errors?.[0]?.message;
55
+ results.push({
56
+ title,
57
+ status,
58
+ duration: result.duration ?? 0,
59
+ ...(errorMsg ? { error: errorMsg } : {}),
60
+ });
61
+ }
62
+ }
63
+ for (const nested of spec.suites ?? []) {
64
+ collectSpecs(nested, results);
65
+ }
66
+ }
67
+ for (const nested of suite.suites ?? []) {
68
+ collectSpecs(nested, results);
69
+ }
70
+ }
71
+ function extractResults(json) {
72
+ const results = [];
73
+ collectSpecs(json, results);
74
+ let passed = 0;
75
+ let failed = 0;
76
+ let skipped = 0;
77
+ for (const r of results) {
78
+ if (r.status === 'passed')
79
+ passed++;
80
+ else if (r.status === 'failed' || r.status === 'timedOut')
81
+ failed++;
82
+ else
83
+ skipped++;
84
+ }
85
+ return { results, passed, failed, skipped };
86
+ }
87
+ /**
88
+ * stdout から Playwright JSON 出力を探して返す。
89
+ * JSON の前後に他のテキストが混入することがあるため、最初の '{' を起点に抽出を試みる。
90
+ */
91
+ function parsePlaywrightJson(stdout) {
92
+ const start = stdout.indexOf('{');
93
+ if (start === -1)
94
+ return null;
95
+ try {
96
+ return JSON.parse(stdout.slice(start));
97
+ }
98
+ catch {
99
+ return null;
100
+ }
101
+ }
102
+ function runPlaywrightProcess(agentRootDir, specFile, executionId) {
103
+ return new Promise((resolve, reject) => {
104
+ const playwrightBin = path.join(agentRootDir, 'node_modules', '.bin', 'playwright');
105
+ const configFile = path.join(agentRootDir, 'playwright.config.ts');
106
+ const relativeSpec = path.relative(agentRootDir, specFile);
107
+ logger_1.logger.info(`[playwright-test-runner] Running test [${executionId}]: ${relativeSpec}`);
108
+ const args = ['test', relativeSpec, '--reporter=json'];
109
+ if (fs.existsSync(configFile)) {
110
+ args.push(`--config=${configFile}`);
111
+ }
112
+ const proc = (0, child_process_1.spawn)(playwrightBin, args, {
113
+ cwd: agentRootDir,
114
+ stdio: ['ignore', 'pipe', 'pipe'],
115
+ });
116
+ let stdoutData = '';
117
+ let stderrData = '';
118
+ proc.stdout.on('data', (chunk) => {
119
+ stdoutData += chunk.toString();
120
+ });
121
+ proc.stderr.on('data', (chunk) => {
122
+ stderrData += chunk.toString();
123
+ });
124
+ proc.on('error', (err) => {
125
+ reject(err);
126
+ });
127
+ proc.on('close', (code) => {
128
+ resolve({
129
+ stdout: stdoutData,
130
+ stderr: stderrData,
131
+ exitCode: code ?? 1,
132
+ });
133
+ });
134
+ });
135
+ }
136
+ const VALID_EXECUTION_ID = /^[a-zA-Z0-9_-]+$/;
137
+ /**
138
+ * Playwright テストスクリプトをサブプロセスで実行し、結果を返す。
139
+ *
140
+ * @param scriptContent - 実行する JavaScript テストコード
141
+ * @param executionId - ログ追跡用の実行 ID(英数字・ハイフン・アンダースコアのみ許可)
142
+ * @param agentRootDir - エージェントのルートディレクトリ(node_modules/.bin/playwright が存在する場所)
143
+ */
144
+ async function runPlaywrightScript(scriptContent, executionId, agentRootDir) {
145
+ if (!VALID_EXECUTION_ID.test(executionId)) {
146
+ throw new Error(`Invalid executionId: must match /^[a-zA-Z0-9_-]+$/`);
147
+ }
148
+ const e2eDir = path.join(agentRootDir, 'tmp', 'e2e');
149
+ fs.mkdirSync(e2eDir, { recursive: true });
150
+ const specFile = path.join(e2eDir, `${executionId}.spec.js`);
151
+ fs.writeFileSync(specFile, scriptContent, 'utf-8');
152
+ try {
153
+ const { stdout, stderr, exitCode } = await runPlaywrightProcess(agentRootDir, specFile, executionId);
154
+ let results = [];
155
+ let passed = 0;
156
+ let failed = 0;
157
+ let skipped = 0;
158
+ try {
159
+ const jsonOutput = parsePlaywrightJson(stdout);
160
+ if (jsonOutput) {
161
+ const parsed = extractResults(jsonOutput);
162
+ results = parsed.results;
163
+ passed = parsed.passed;
164
+ failed = parsed.failed;
165
+ skipped = parsed.skipped;
166
+ }
167
+ }
168
+ catch (parseErr) {
169
+ logger_1.logger.warn(`[playwright-test-runner] Failed to parse JSON output: ${(0, utils_1.getErrorMessage)(parseErr)}`);
170
+ }
171
+ const success = exitCode === 0;
172
+ return {
173
+ success,
174
+ passed,
175
+ failed,
176
+ skipped,
177
+ totalSteps: results.length,
178
+ results,
179
+ errorOutput: !success && stderr ? stderr : undefined,
180
+ };
181
+ }
182
+ finally {
183
+ try {
184
+ fs.unlinkSync(specFile);
185
+ }
186
+ catch {
187
+ // ignore cleanup errors
188
+ }
189
+ }
190
+ }
191
+ //# sourceMappingURL=playwright-test-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playwright-test-runner.js","sourceRoot":"","sources":["../../src/browser/playwright-test-runner.ts"],"names":[],"mappings":"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"}
@@ -13,12 +13,11 @@ export interface ExecuteE2eTestOptions {
13
13
  mcpConfigPath?: string;
14
14
  tenantCode?: string;
15
15
  browserLocalPort?: number;
16
- browserSessionManager?: unknown;
17
16
  }
18
17
  /**
19
18
  * E2E テストを実行する
20
19
  *
21
- * playwrightScript がある場合はスクリプト直接実行(高速)、
20
+ * playwrightScript がある場合は @playwright/test サブプロセスで直接実行(高速)、
22
21
  * ない場合は従来のAI実行フローを使用する。
23
22
  */
24
23
  export declare function executeE2eTest(options: ExecuteE2eTestOptions): Promise<CommandResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"e2e-test-executor.d.ts","sourceRoot":"","sources":["../../src/commands/e2e-test-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAG9C,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACtB,MAAM,UAAU,CAAA;AAMjB,qCAAqC;AACrC,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,SAAS,CAAA;IACjB,YAAY,CAAC,EAAE,iBAAiB,CAAA;IAChC,cAAc,CAAC,EAAE,aAAa,CAAA;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,qBAAqB,CAAA;IACrC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC;AAKD;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,aAAa,CAAC,CA+DxB"}
1
+ {"version":3,"file":"e2e-test-executor.d.ts","sourceRoot":"","sources":["../../src/commands/e2e-test-executor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAG9C,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACtB,MAAM,UAAU,CAAA;AAMjB,qCAAqC;AACrC,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,SAAS,CAAA;IACjB,YAAY,CAAC,EAAE,iBAAiB,CAAA;IAChC,cAAc,CAAC,EAAE,aAAa,CAAA;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,qBAAqB,CAAA;IACrC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,aAAa,CAAC,CA4DxB"}
@@ -1,17 +1,19 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.executeE2eTest = executeE2eTest;
4
- const browser_script_executor_1 = require("../browser/browser-script-executor");
7
+ const path_1 = __importDefault(require("path"));
8
+ const playwright_test_runner_1 = require("../browser/playwright-test-runner");
5
9
  const logger_1 = require("../logger");
6
10
  const command_1 = require("../types/command");
7
11
  const utils_1 = require("../utils");
8
12
  const chat_executor_1 = require("./chat-executor");
9
- /** Maximum number of recovery attempts */
10
- const MAX_RECOVERY_ATTEMPTS = 3;
11
13
  /**
12
14
  * E2E テストを実行する
13
15
  *
14
- * playwrightScript がある場合はスクリプト直接実行(高速)、
16
+ * playwrightScript がある場合は @playwright/test サブプロセスで直接実行(高速)、
15
17
  * ない場合は従来のAI実行フローを使用する。
16
18
  */
17
19
  async function executeE2eTest(options) {
@@ -23,7 +25,6 @@ async function executeE2eTest(options) {
23
25
  const credentialId = (0, utils_1.parseString)(payload.credentialId);
24
26
  const executionMethod = (0, utils_1.parseString)(payload.executionMethod) ?? 'ai';
25
27
  const playwrightScript = (0, utils_1.parseString)(payload.playwrightScript);
26
- const recoveryMode = ((0, utils_1.parseString)(payload.recoveryMode) ?? 'auto');
27
28
  const steps = payload.steps;
28
29
  if (!executionId) {
29
30
  return (0, command_1.errorResult)('executionId is required for e2e_test');
@@ -49,8 +50,6 @@ async function executeE2eTest(options) {
49
50
  scenario,
50
51
  targetUrl: targetUrl ?? undefined,
51
52
  credentialId: credentialId ?? undefined,
52
- recoveryMode,
53
- steps,
54
53
  startTime,
55
54
  });
56
55
  }
@@ -134,35 +133,15 @@ async function executeAiMode(options, params) {
134
133
  /**
135
134
  * スクリプト直接実行モード
136
135
  *
137
- * Playwrightスクリプトを直接実行し、失敗時はAIリカバリを試みる。
136
+ * @playwright/test をサブプロセスで実行してテスト結果を返す。
138
137
  */
139
138
  async function executeScriptMode(params) {
140
- const { client, tenantCode, executionId, testCaseId, playwrightScript, scenario, recoveryMode, startTime, browserSessionManager, } = params;
139
+ const { client, tenantCode, executionId, testCaseId, playwrightScript, startTime, } = params;
141
140
  const projectCode = params.projectConfig?.project?.projectCode;
142
- const aiFallbackParams = {
143
- executionId,
144
- testCaseId,
145
- scenario,
146
- targetUrl: params.targetUrl,
147
- credentialId: params.credentialId,
148
- startTime,
149
- };
150
- // ブラウザセッション取得
151
- const session = await acquireBrowserSession(browserSessionManager, executionId);
152
- if (session === null) {
153
- logger_1.logger.warn('[e2e_test] No browser session manager available, falling back to AI mode');
154
- return executeAiMode(params, aiFallbackParams);
155
- }
156
- if (session === undefined) {
157
- // セッション作成失敗 — ログは acquireBrowserSession 内で記録済み
158
- return executeAiMode(params, aiFallbackParams);
159
- }
160
- // ステップ完了コールバック
161
- const onStepComplete = buildStepCompleteCallback(client, tenantCode, projectCode, executionId, testCaseId);
162
- // スクリプト実行
141
+ const agentRootDir = params.projectDir ?? path_1.default.resolve(__dirname, '../../');
163
142
  let scriptResult;
164
143
  try {
165
- scriptResult = await (0, browser_script_executor_1.executePlaywrightScript)(session, playwrightScript, onStepComplete);
144
+ scriptResult = await (0, playwright_test_runner_1.runPlaywrightScript)(playwrightScript, executionId, agentRootDir);
166
145
  }
167
146
  catch (err) {
168
147
  const errorMessage = (0, utils_1.toErrorMessage)(err);
@@ -170,235 +149,23 @@ async function executeScriptMode(params) {
170
149
  await reportExecutionStatus(client, tenantCode, projectCode, executionId, 'error', Date.now() - startTime, errorMessage, testCaseId);
171
150
  return (0, command_1.errorResult)(`Script execution error: ${errorMessage}`);
172
151
  }
173
- // fallbackToChat の場合はAI実行にフォールバック
174
- if (scriptResult.fallbackToChat) {
175
- logger_1.logger.info('[e2e_test] Script contains unparseable lines, falling back to AI mode');
176
- return executeAiMode(params, aiFallbackParams);
177
- }
178
- // スクリプト成功
179
- if (scriptResult.success) {
180
- return reportScriptSuccess(client, tenantCode, projectCode, executionId, testCaseId, startTime, scriptResult);
181
- }
182
- // スクリプト失敗 → AIリカバリ
183
- logger_1.logger.info(`[e2e_test] Script failed at: ${scriptResult.failedLine}, attempting AI recovery`);
184
- return executeAiRecovery({
185
- ...params,
186
- session,
187
- originalScript: playwrightScript,
188
- scriptResult,
189
- recoveryMode,
190
- });
191
- }
192
- /**
193
- * ブラウザセッションを取得する。
194
- * - セッションマネージャーなし → null(AI fallback シグナル)
195
- * - セッション作成失敗 → undefined(AI fallback シグナル)
196
- * - 成功 → セッションオブジェクト
197
- */
198
- async function acquireBrowserSession(browserSessionManager, executionId) {
199
- const sessionManager = browserSessionManager;
200
- if (!sessionManager) {
201
- return null;
202
- }
203
- try {
204
- return await sessionManager.getOrCreate(`e2e-${executionId}`);
205
- }
206
- catch (err) {
207
- logger_1.logger.warn(`[e2e_test] Failed to create browser session: ${(0, utils_1.toErrorMessage)(err)}`);
208
- return undefined;
209
- }
210
- }
211
- /**
212
- * ステップ完了コールバックを生成する
213
- */
214
- function buildStepCompleteCallback(client, tenantCode, projectCode, executionId, testCaseId) {
215
- return async (step, _total, line) => {
216
- if (!tenantCode || !projectCode)
217
- return;
218
- try {
219
- await client.reportE2eTestStep(tenantCode, projectCode, executionId, {
220
- testCaseId,
221
- stepNumber: step,
222
- action: line,
223
- status: 'passed',
224
- });
225
- }
226
- catch (err) {
227
- logger_1.logger.warn(`[e2e_test] Failed to report step ${step}: ${(0, utils_1.toErrorMessage)(err)}`);
228
- }
229
- };
230
- }
231
- /**
232
- * スクリプト成功時のステータス報告と結果返却
233
- */
234
- async function reportScriptSuccess(client, tenantCode, projectCode, executionId, testCaseId, startTime, scriptResult) {
235
152
  const duration = Date.now() - startTime;
236
- await reportExecutionStatus(client, tenantCode, projectCode, executionId, 'passed', duration, undefined, testCaseId, { passedSteps: scriptResult.completedSteps, totalSteps: scriptResult.totalSteps });
237
- logger_1.logger.info(`[e2e_test] Script execution passed [${executionId}]: ${scriptResult.completedSteps}/${scriptResult.totalSteps} steps`);
238
- return (0, command_1.successResult)({
239
- executionId,
240
- status: 'passed',
241
- duration,
242
- completedSteps: scriptResult.completedSteps,
243
- totalSteps: scriptResult.totalSteps,
244
- });
245
- }
246
- /**
247
- * AIリカバリ実行
248
- *
249
- * スクリプト失敗時にAIに修正スクリプトを生成させ、再実行する。
250
- */
251
- async function executeAiRecovery(params) {
252
- const { client, commandId, tenantCode, executionId, testCaseId, scenario, originalScript, scriptResult, session, startTime, recoveryMode, } = params;
253
- const projectCode = params.projectConfig?.project?.projectCode;
254
- for (let attempt = 1; attempt <= MAX_RECOVERY_ATTEMPTS; attempt++) {
255
- logger_1.logger.info(`[e2e_test] Recovery attempt ${attempt}/${MAX_RECOVERY_ATTEMPTS}`);
256
- // AIにスクリプト修正を依頼
257
- const recoveryPrompt = buildRecoveryPrompt(originalScript, scriptResult, scenario, attempt);
258
- let chatResult;
259
- try {
260
- chatResult = await (0, chat_executor_1.executeChatCommand)({
261
- payload: {
262
- message: recoveryPrompt,
263
- policyContext: {
264
- tenantCode,
265
- projectCode,
266
- e2eExecutionId: executionId,
267
- e2eTestCaseId: testCaseId,
268
- },
269
- },
270
- commandId: `${commandId}-recovery-${attempt}`,
271
- client,
272
- serverConfig: params.serverConfig,
273
- activeChatMode: params.activeChatMode,
274
- agentId: params.agentId,
275
- projectDir: params.projectDir,
276
- projectConfig: params.projectConfig,
277
- mcpConfigPath: params.mcpConfigPath,
278
- tenantCode,
279
- browserLocalPort: params.browserLocalPort,
280
- });
281
- }
282
- catch (err) {
283
- logger_1.logger.warn(`[e2e_test] Recovery chat failed: ${(0, utils_1.toErrorMessage)(err)}`);
284
- continue;
285
- }
286
- if (!chatResult.success) {
287
- logger_1.logger.warn(`[e2e_test] Recovery chat returned failure: ${chatResult.error}`);
288
- continue;
289
- }
290
- // チャット結果からスクリプトを抽出
291
- const updatedScript = extractScriptFromChatResult(chatResult);
292
- if (!updatedScript) {
293
- logger_1.logger.warn('[e2e_test] Could not extract script from recovery chat result');
294
- continue;
295
- }
296
- // 修正スクリプトで再実行
297
- let retryResult;
298
- try {
299
- retryResult = await (0, browser_script_executor_1.executePlaywrightScript)(session, updatedScript);
300
- }
301
- catch (err) {
302
- logger_1.logger.warn(`[e2e_test] Recovery script execution error: ${(0, utils_1.toErrorMessage)(err)}`);
303
- continue;
304
- }
305
- if (retryResult.success) {
306
- logger_1.logger.info(`[e2e_test] Recovery succeeded on attempt ${attempt}`);
307
- // 修正スクリプトを保存
308
- if (tenantCode && projectCode && testCaseId) {
309
- try {
310
- await client.updateE2eTestScript(tenantCode, projectCode, executionId, {
311
- playwrightScript: updatedScript,
312
- testCaseId,
313
- recoveryMode,
314
- });
315
- }
316
- catch (err) {
317
- logger_1.logger.warn(`[e2e_test] Failed to save recovered script: ${(0, utils_1.toErrorMessage)(err)}`);
318
- }
319
- }
320
- const duration = Date.now() - startTime;
321
- await reportExecutionStatus(client, tenantCode, projectCode, executionId, 'passed', duration, undefined, testCaseId, {
322
- passedSteps: retryResult.completedSteps,
323
- totalSteps: retryResult.totalSteps,
324
- recoveryAttempts: attempt,
325
- });
326
- return (0, command_1.successResult)({
327
- executionId,
328
- status: 'passed',
329
- duration,
330
- recoveredOnAttempt: attempt,
331
- });
332
- }
333
- }
334
- // 全リトライ失敗
335
- const duration = Date.now() - startTime;
336
- const errorMessage = `Script recovery failed after ${MAX_RECOVERY_ATTEMPTS} attempts. Last failure: ${scriptResult.failedLine}`;
337
- await reportExecutionStatus(client, tenantCode, projectCode, executionId, 'failed', duration, errorMessage, testCaseId, {
338
- passedSteps: scriptResult.completedSteps,
339
- failedSteps: 1,
153
+ const status = scriptResult.success ? 'passed' : 'failed';
154
+ await reportExecutionStatus(client, tenantCode, projectCode, executionId, status, duration, scriptResult.success ? undefined : (scriptResult.errorOutput ?? `${scriptResult.failed} test(s) failed`), testCaseId, {
155
+ passedSteps: scriptResult.passed,
156
+ failedSteps: scriptResult.failed,
340
157
  totalSteps: scriptResult.totalSteps,
341
- recoveryAttempts: MAX_RECOVERY_ATTEMPTS,
342
158
  });
159
+ logger_1.logger.info(`[e2e_test] Script execution ${status} [${executionId}]: passed=${scriptResult.passed} failed=${scriptResult.failed} duration=${duration}ms`);
343
160
  return (0, command_1.successResult)({
344
161
  executionId,
345
- status: 'failed',
162
+ status,
346
163
  duration,
347
- error: errorMessage,
164
+ passed: scriptResult.passed,
165
+ failed: scriptResult.failed,
166
+ totalSteps: scriptResult.totalSteps,
348
167
  });
349
168
  }
350
- /** リカバリ用プロンプトを構築 */
351
- function buildRecoveryPrompt(originalScript, scriptResult, scenario, attempt) {
352
- const completedLines = scriptResult.results
353
- .filter(r => r.success)
354
- .map(r => r.line)
355
- .join('\n');
356
- const failedInfo = scriptResult.results
357
- .filter(r => !r.success)
358
- .map(r => `Line: ${r.line}\nError: ${r.error ?? 'unknown'}`)
359
- .join('\n');
360
- return [
361
- '# E2E テストスクリプト修正依頼',
362
- '',
363
- `リカバリ試行: ${attempt}/${MAX_RECOVERY_ATTEMPTS}`,
364
- '',
365
- '## 元のテストシナリオ',
366
- scenario,
367
- '',
368
- '## 元のスクリプト',
369
- '```',
370
- originalScript,
371
- '```',
372
- '',
373
- '## 成功したステップ',
374
- completedLines || '(なし)',
375
- '',
376
- '## 失敗情報',
377
- failedInfo,
378
- '',
379
- '## 修正指示',
380
- '上記の失敗を修正した新しいPlaywrightスクリプトを生成してください。',
381
- '対応コマンド: page.goto, page.click, page.fill, page.keyboard.type/press, page.mouse.wheel, page.waitForTimeout, page.locator().innerText()',
382
- '',
383
- 'スクリプトのみを出力してください(```で囲まないでください)。',
384
- ].join('\n');
385
- }
386
- /** チャット結果からスクリプトを抽出 */
387
- function extractScriptFromChatResult(result) {
388
- if (!result.success)
389
- return null;
390
- const data = result.data;
391
- if (typeof data === 'string') {
392
- // コードブロックから抽出
393
- const codeBlockMatch = data.match(/```(?:typescript|javascript|playwright)?\n([\s\S]*?)```/);
394
- if (codeBlockMatch)
395
- return codeBlockMatch[1].trim();
396
- // await page. で始まる行があればスクリプトとして扱う
397
- if (data.includes('await page.'))
398
- return data.trim();
399
- }
400
- return null;
401
- }
402
169
  /**
403
170
  * API に実行ステータスを報告する
404
171
  */
@@ -1 +1 @@
1
- {"version":3,"file":"e2e-test-executor.js","sourceRoot":"","sources":["../../src/commands/e2e-test-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"e2e-test-executor.js","sourceRoot":"","sources":["../../src/commands/e2e-test-executor.ts"],"names":[],"mappings":"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"}