@zosmaai/zosma-qa-cli 0.0.6 → 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.
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AA0DA,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAyN7C"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AA0HA,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CA6G7C"}
@@ -10,7 +10,7 @@ const node_path_1 = __importDefault(require("node:path"));
10
10
  const prompts_1 = require("@inquirer/prompts");
11
11
  const chalk_1 = __importDefault(require("chalk"));
12
12
  const ora_1 = __importDefault(require("ora"));
13
- // ─── Template content ─────────────────────────────────────────────────────────
13
+ // ─── TypeScript templates ──────────────────────────────────────────────────────
14
14
  function seedSpecTemplate(baseURL) {
15
15
  return `import { test, expect } from '@playwright/test';
16
16
 
@@ -43,7 +43,7 @@ export default defineConfig({
43
43
  });
44
44
  `;
45
45
  }
46
- function zosmaConfigTemplate(baseURL, browsers) {
46
+ function zosmaConfigTsTemplate(baseURL, browsers) {
47
47
  const browsersJson = JSON.stringify(browsers);
48
48
  return `import { defineConfig } from '@zosmaai/zosma-qa-core';
49
49
 
@@ -54,6 +54,63 @@ export default defineConfig({
54
54
  });
55
55
  `;
56
56
  }
57
+ // ─── Python templates ──────────────────────────────────────────────────────────
58
+ function pyprojectTomlTemplate(projectName, baseURL, browsers) {
59
+ const safeName = projectName.trim() || 'my-qa-project';
60
+ const browserOpts = browsers.map((b) => `--browser ${b}`).join(' ');
61
+ return `[project]
62
+ name = "${safeName}"
63
+ version = "0.1.0"
64
+ requires-python = ">=3.9"
65
+ dependencies = [
66
+ "pytest-playwright>=0.5.0",
67
+ ]
68
+
69
+ [tool.pytest.ini_options]
70
+ testpaths = ["tests"]
71
+ base_url = "${baseURL}"
72
+ addopts = "${browserOpts}"
73
+ `;
74
+ }
75
+ function confpyTemplate() {
76
+ return `# conftest.py
77
+ #
78
+ # pytest-playwright fixtures are available automatically:
79
+ # page — a new Playwright Page for each test
80
+ # browser — the browser instance
81
+ # context — the browser context
82
+ #
83
+ # base_url is configured in pyproject.toml under [tool.pytest.ini_options].
84
+ # Add your own shared fixtures below.
85
+ `;
86
+ }
87
+ function testSeedPyTemplate() {
88
+ return `from playwright.sync_api import Page, expect
89
+
90
+
91
+ def test_seed(page: Page) -> None:
92
+ """
93
+ Seed test — entry point for AI agents.
94
+
95
+ How to use with agents:
96
+ # Prompt your AI tool:
97
+ # "Use the planner agent. Seed: tests/test_seed.py"
98
+ """
99
+ page.goto("/")
100
+ expect(page).not_to_have_title("")
101
+ `;
102
+ }
103
+ function zosmaConfigPyTemplate(baseURL, browsers) {
104
+ const browsersJson = JSON.stringify(browsers);
105
+ return `import { defineConfig } from '@zosmaai/zosma-qa-core';
106
+
107
+ export default defineConfig({
108
+ plugins: ['pytest'],
109
+ baseURL: '${baseURL}',
110
+ browsers: ${browsersJson},
111
+ });
112
+ `;
113
+ }
57
114
  // ─── Main init command ────────────────────────────────────────────────────────
58
115
  async function runInit() {
59
116
  const cwd = process.cwd();
@@ -74,6 +131,22 @@ async function runInit() {
74
131
  console.log(chalk_1.default.dim(' No name given — scaffolding in current directory'));
75
132
  }
76
133
  console.log('');
134
+ const language = await (0, prompts_1.select)({
135
+ message: 'Language:',
136
+ choices: [
137
+ {
138
+ name: 'TypeScript (default)',
139
+ value: 'typescript',
140
+ description: 'Playwright tests in TypeScript — the most common choice',
141
+ },
142
+ {
143
+ name: 'Python',
144
+ value: 'python',
145
+ description: 'Playwright tests in Python using pytest-playwright',
146
+ },
147
+ ],
148
+ default: 'typescript',
149
+ });
77
150
  const baseURL = await (0, prompts_1.input)({
78
151
  message: 'Base URL of the app under test:',
79
152
  default: 'http://localhost:3000',
@@ -88,34 +161,60 @@ async function runInit() {
88
161
  ],
89
162
  validate: (v) => v.length > 0 ? true : 'Select at least one browser',
90
163
  });
91
- const agentLoop = await (0, prompts_1.select)({
92
- message: 'Set up AI agents for test generation?',
93
- choices: [
94
- {
95
- name: 'OpenCode (default)',
96
- value: 'opencode',
97
- description: 'Initialise agent definitions for the OpenCode AI coding tool',
98
- },
99
- {
100
- name: 'Claude Code',
101
- value: 'claude',
102
- description: 'Initialise agent definitions for Claude Code (claude.ai/code)',
103
- },
104
- {
105
- name: 'VS Code (Copilot)',
106
- value: 'vscode',
107
- description: 'Initialise agent definitions for GitHub Copilot in VS Code',
108
- },
109
- {
110
- name: 'Skip for now',
111
- value: 'skip',
112
- description: 'You can always run `npx zosma-qa agents init` later',
113
- },
114
- ],
115
- default: 'opencode',
116
- });
164
+ // AI loop prompt TypeScript only; the init-agents tooling requires Node.js/Playwright TS
165
+ let agentLoop = 'skip';
166
+ if (language === 'typescript') {
167
+ agentLoop = await (0, prompts_1.select)({
168
+ message: 'Set up AI agents for test generation?',
169
+ choices: [
170
+ {
171
+ name: 'OpenCode (default)',
172
+ value: 'opencode',
173
+ description: 'Initialise agent definitions for the OpenCode AI coding tool',
174
+ },
175
+ {
176
+ name: 'Claude Code',
177
+ value: 'claude',
178
+ description: 'Initialise agent definitions for Claude Code (claude.ai/code)',
179
+ },
180
+ {
181
+ name: 'VS Code (Copilot)',
182
+ value: 'vscode',
183
+ description: 'Initialise agent definitions for GitHub Copilot in VS Code',
184
+ },
185
+ {
186
+ name: 'Skip for now',
187
+ value: 'skip',
188
+ description: 'You can always run `npx zosma-qa agents init` later',
189
+ },
190
+ ],
191
+ default: 'opencode',
192
+ });
193
+ }
117
194
  console.log('');
118
195
  // ── Scaffold files ─────────────────────────────────────────────────────────
196
+ if (language === 'python') {
197
+ const uvAvailable = isUvAvailable();
198
+ await scaffoldPython(projectDir, projectName, baseURL, browsers, uvAvailable);
199
+ console.log('');
200
+ console.log(`${chalk_1.default.bold.green(' Ready!')} Here's what to do next:\n`);
201
+ const cdHint = projectName.trim() ? ` ${chalk_1.default.cyan(`cd ${projectName.trim()}`)}\n` : '';
202
+ if (cdHint)
203
+ console.log(cdHint);
204
+ printPythonSummary(uvAvailable);
205
+ }
206
+ else {
207
+ await scaffoldTypeScript(projectDir, baseURL, browsers, agentLoop);
208
+ console.log('');
209
+ console.log(`${chalk_1.default.bold.green(' Ready!')} Here's what to do next:\n`);
210
+ const cdHint = projectName.trim() ? ` ${chalk_1.default.cyan(`cd ${projectName.trim()}`)}\n` : '';
211
+ if (cdHint)
212
+ console.log(cdHint);
213
+ printTypeScriptSummary();
214
+ }
215
+ }
216
+ // ─── TypeScript scaffold ───────────────────────────────────────────────────────
217
+ async function scaffoldTypeScript(projectDir, baseURL, browsers, agentLoop) {
119
218
  const spinner = (0, ora_1.default)();
120
219
  // tests/
121
220
  const testsDir = node_path_1.default.join(projectDir, 'tests');
@@ -150,7 +249,7 @@ async function runInit() {
150
249
  // zosma.config.ts
151
250
  const zosmaConfigPath = node_path_1.default.join(projectDir, 'zosma.config.ts');
152
251
  if (!node_fs_1.default.existsSync(zosmaConfigPath)) {
153
- node_fs_1.default.writeFileSync(zosmaConfigPath, zosmaConfigTemplate(baseURL, browsers), 'utf8');
252
+ node_fs_1.default.writeFileSync(zosmaConfigPath, zosmaConfigTsTemplate(baseURL, browsers), 'utf8');
154
253
  spinner.succeed(chalk_1.default.green(`Created zosma.config.ts`));
155
254
  }
156
255
  else {
@@ -166,12 +265,11 @@ async function runInit() {
166
265
  node_fs_1.default.writeFileSync(agentsKeep, '', 'utf8');
167
266
  }
168
267
  // ── Install dependencies ───────────────────────────────────────────────────
169
- // Ensure package.json exists so the install has somewhere to write
170
268
  const pkgJsonPath = node_path_1.default.join(projectDir, 'package.json');
171
269
  if (!node_fs_1.default.existsSync(pkgJsonPath)) {
172
270
  const initSpinner = (0, ora_1.default)('Creating package.json…').start();
173
271
  try {
174
- await spawnAsync('npm', ['init', '-y'], cwd);
272
+ await spawnAsync('npm', ['init', '-y'], projectDir);
175
273
  initSpinner.succeed(chalk_1.default.green('Created package.json'));
176
274
  }
177
275
  catch {
@@ -209,12 +307,86 @@ async function runInit() {
209
307
  ` npx playwright install && npx playwright init-agents --loop=${agentLoop}`));
210
308
  }
211
309
  }
212
- // ── Summary ────────────────────────────────────────────────────────────────
213
- const cdHint = projectName.trim() ? ` ${chalk_1.default.cyan(`cd ${projectName.trim()}`)}\n` : '';
310
+ }
311
+ // ─── Python scaffold ───────────────────────────────────────────────────────────
312
+ async function scaffoldPython(projectDir, projectName, baseURL, browsers, uvAvailable) {
313
+ const spinner = (0, ora_1.default)();
314
+ // tests/test_seed.py
315
+ const testsDir = node_path_1.default.join(projectDir, 'tests');
316
+ ensureDir(testsDir);
317
+ const seedPath = node_path_1.default.join(testsDir, 'test_seed.py');
318
+ if (!node_fs_1.default.existsSync(seedPath)) {
319
+ node_fs_1.default.writeFileSync(seedPath, testSeedPyTemplate(), 'utf8');
320
+ spinner.succeed(chalk_1.default.green(`Created tests/test_seed.py`));
321
+ }
322
+ else {
323
+ spinner.info(chalk_1.default.dim(`Skipped tests/test_seed.py (already exists)`));
324
+ spinner.stop();
325
+ }
326
+ // conftest.py
327
+ const confpyPath = node_path_1.default.join(projectDir, 'conftest.py');
328
+ if (!node_fs_1.default.existsSync(confpyPath)) {
329
+ node_fs_1.default.writeFileSync(confpyPath, confpyTemplate(), 'utf8');
330
+ spinner.succeed(chalk_1.default.green(`Created conftest.py`));
331
+ }
332
+ else {
333
+ spinner.info(chalk_1.default.dim(`Skipped conftest.py (already exists)`));
334
+ spinner.stop();
335
+ }
336
+ // pyproject.toml
337
+ const pyprojectPath = node_path_1.default.join(projectDir, 'pyproject.toml');
338
+ if (!node_fs_1.default.existsSync(pyprojectPath)) {
339
+ node_fs_1.default.writeFileSync(pyprojectPath, pyprojectTomlTemplate(projectName, baseURL, browsers), 'utf8');
340
+ spinner.succeed(chalk_1.default.green(`Created pyproject.toml`));
341
+ }
342
+ else {
343
+ spinner.info(chalk_1.default.dim(`Skipped pyproject.toml (already exists)`));
344
+ spinner.stop();
345
+ }
346
+ // zosma.config.ts
347
+ const zosmaConfigPath = node_path_1.default.join(projectDir, 'zosma.config.ts');
348
+ if (!node_fs_1.default.existsSync(zosmaConfigPath)) {
349
+ node_fs_1.default.writeFileSync(zosmaConfigPath, zosmaConfigPyTemplate(baseURL, browsers), 'utf8');
350
+ spinner.succeed(chalk_1.default.green(`Created zosma.config.ts`));
351
+ }
352
+ else {
353
+ spinner.info(chalk_1.default.dim(`Skipped zosma.config.ts (already exists)`));
354
+ spinner.stop();
355
+ }
356
+ // specs/
357
+ const specsDir = node_path_1.default.join(projectDir, 'specs');
358
+ ensureDir(specsDir);
359
+ const specsKeep = node_path_1.default.join(specsDir, '.gitkeep');
360
+ if (!node_fs_1.default.existsSync(specsKeep)) {
361
+ node_fs_1.default.writeFileSync(specsKeep, '', 'utf8');
362
+ }
363
+ spinner.succeed(chalk_1.default.green(`Created specs/ (AI planner writes test plans here)`));
364
+ // .github/agents/
365
+ const agentsDir = node_path_1.default.join(projectDir, '.github', 'agents');
366
+ ensureDir(node_path_1.default.join(projectDir, '.github'));
367
+ ensureDir(agentsDir);
368
+ const agentsKeep = node_path_1.default.join(agentsDir, '.gitkeep');
369
+ if (!node_fs_1.default.existsSync(agentsKeep)) {
370
+ node_fs_1.default.writeFileSync(agentsKeep, '', 'utf8');
371
+ }
372
+ // ── Install via uv (if available) ─────────────────────────────────────────
373
+ if (uvAvailable) {
374
+ const installSpinner = (0, ora_1.default)('Installing pytest-playwright via uv…').start();
375
+ try {
376
+ await spawnAsync('uv', ['add', 'pytest-playwright'], projectDir);
377
+ installSpinner.succeed(chalk_1.default.green('Installed pytest-playwright (via uv)'));
378
+ }
379
+ catch {
380
+ installSpinner.warn(chalk_1.default.yellow('Could not install pytest-playwright automatically — see install instructions below.'));
381
+ }
382
+ }
383
+ // init-agents is not yet supported for Python (requires Node.js/Playwright TS tooling)
214
384
  console.log('');
215
- console.log(`${chalk_1.default.bold.green(' Ready!')} Here's what to do next:\n`);
216
- if (cdHint)
217
- console.log(cdHint);
385
+ console.log(chalk_1.default.dim(` Note: AI agent scaffolding (npx playwright init-agents) is not yet supported\n` +
386
+ ` for Python projects. Use tests/test_seed.py as your AI agent entry point.\n`));
387
+ }
388
+ // ─── Summaries ────────────────────────────────────────────────────────────────
389
+ function printTypeScriptSummary() {
218
390
  console.log(` ${chalk_1.default.cyan('npx zosma-qa run')} run your tests`);
219
391
  console.log(` ${chalk_1.default.cyan('npx zosma-qa agents init')} re-run agent setup for a different AI tool`);
220
392
  console.log(` ${chalk_1.default.cyan('npx zosma-qa report')} open the HTML report`);
@@ -222,12 +394,51 @@ async function runInit() {
222
394
  console.log(chalk_1.default.dim(` Tip: open ${chalk_1.default.white('tests/seed.spec.ts')} and prompt your AI agent:\n` +
223
395
  ` "Use the planner agent. Seed: tests/seed.spec.ts"\n`));
224
396
  }
397
+ function printPythonSummary(uvAvailable) {
398
+ if (uvAvailable) {
399
+ console.log(` Download browser binaries:`);
400
+ console.log(` ${chalk_1.default.cyan('playwright install')}\n`);
401
+ console.log(` Run your tests:`);
402
+ console.log(` ${chalk_1.default.cyan('uv run pytest tests/test_seed.py')}`);
403
+ console.log(` ${chalk_1.default.cyan('npx zosma-qa run')} (detects uv automatically)\n`);
404
+ }
405
+ else {
406
+ console.log(` Install dependencies first:\n`);
407
+ console.log(chalk_1.default.bold(` Option A — uv`) + chalk_1.default.dim(` (recommended — handles virtualenv for you)`));
408
+ console.log(` ${chalk_1.default.cyan('curl -LsSf https://astral.sh/uv/install.sh | sh')}`);
409
+ console.log(` ${chalk_1.default.cyan('uv sync')}`);
410
+ console.log(` ${chalk_1.default.cyan('playwright install')}`);
411
+ console.log(` ${chalk_1.default.cyan('uv run pytest tests/test_seed.py')}\n`);
412
+ console.log(chalk_1.default.bold(` Option B — venv + pip`));
413
+ console.log(` ${chalk_1.default.cyan('python -m venv .venv')}`);
414
+ console.log(` ${chalk_1.default.cyan('source .venv/bin/activate')}` +
415
+ chalk_1.default.dim(` # Windows: .venv\\Scripts\\activate`));
416
+ console.log(` ${chalk_1.default.cyan('pip install pytest-playwright')}`);
417
+ console.log(` ${chalk_1.default.cyan('playwright install')}`);
418
+ console.log(` ${chalk_1.default.cyan('pytest tests/test_seed.py')}\n`);
419
+ }
420
+ console.log(chalk_1.default.dim(` Tip: open ${chalk_1.default.white('tests/test_seed.py')} and prompt your AI agent:\n` +
421
+ ` "Write more tests following the pattern in tests/test_seed.py"\n`));
422
+ }
225
423
  // ─── Utilities ────────────────────────────────────────────────────────────────
226
424
  function ensureDir(dir) {
227
425
  if (!node_fs_1.default.existsSync(dir)) {
228
426
  node_fs_1.default.mkdirSync(dir, { recursive: true });
229
427
  }
230
428
  }
429
+ /**
430
+ * Check whether `uv` is installed on the system.
431
+ * Returns true if `uv --version` exits with code 0.
432
+ */
433
+ function isUvAvailable() {
434
+ try {
435
+ const result = (0, node_child_process_1.spawnSync)('uv', ['--version'], { stdio: 'pipe' });
436
+ return result.status === 0;
437
+ }
438
+ catch {
439
+ return false;
440
+ }
441
+ }
231
442
  function spawnAsync(cmd, args, cwd) {
232
443
  return new Promise((resolve, reject) => {
233
444
  const child = (0, node_child_process_1.spawn)(cmd, args, { stdio: 'inherit', cwd });
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,10 @@ export interface RunOptions {
8
8
  reporter?: string;
9
9
  }
10
10
  /**
11
- * `zosma-qa run` — delegates to `npx playwright test` with all flags
12
- * forwarded so the full Playwright feature set remains available.
11
+ * `zosma-qa run` — detects the active runner from zosma.config and delegates
12
+ * to the appropriate process:
13
+ * - plugins: ['pytest'] → `uv run pytest` (if uv.lock present) or `python -m pytest`
14
+ * - plugins: ['playwright'] → `npx playwright test` (default)
13
15
  */
14
16
  export declare function runTests(options?: RunOptions): Promise<void>;
15
17
  //# sourceMappingURL=run.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBtE"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAUtE"}
@@ -5,27 +5,61 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.runTests = runTests;
7
7
  const node_child_process_1 = require("node:child_process");
8
+ const node_fs_1 = __importDefault(require("node:fs"));
9
+ const node_path_1 = __importDefault(require("node:path"));
10
+ const zosma_qa_core_1 = require("@zosmaai/zosma-qa-core");
8
11
  const chalk_1 = __importDefault(require("chalk"));
9
12
  /**
10
- * `zosma-qa run` — delegates to `npx playwright test` with all flags
11
- * forwarded so the full Playwright feature set remains available.
13
+ * `zosma-qa run` — detects the active runner from zosma.config and delegates
14
+ * to the appropriate process:
15
+ * - plugins: ['pytest'] → `uv run pytest` (if uv.lock present) or `python -m pytest`
16
+ * - plugins: ['playwright'] → `npx playwright test` (default)
12
17
  */
13
18
  async function runTests(options = {}) {
14
- const args = buildArgs(options);
19
+ const cwd = process.cwd();
20
+ const config = await (0, zosma_qa_core_1.loadConfig)(cwd);
21
+ const isPython = config.plugins.includes('pytest');
22
+ if (isPython) {
23
+ await runPytest(options, config.testDir ?? './tests', cwd);
24
+ }
25
+ else {
26
+ await runPlaywright(options, cwd);
27
+ }
28
+ }
29
+ // ─── pytest dispatch ───────────────────────────────────────────────────────────
30
+ function buildPytestArgs(options, testDir) {
31
+ const args = [testDir];
32
+ if (options.grep)
33
+ args.push('-k', options.grep);
34
+ if (options.headed)
35
+ args.push('--headed');
36
+ // --project, --debug, --workers, --shard, --reporter have no pytest equivalent — silently ignored
37
+ return args;
38
+ }
39
+ async function runPytest(options, testDir, cwd) {
40
+ const hasUvLock = node_fs_1.default.existsSync(node_path_1.default.join(cwd, 'uv.lock'));
41
+ let cmd;
42
+ let args;
43
+ if (hasUvLock) {
44
+ cmd = 'uv';
45
+ args = ['run', 'pytest', ...buildPytestArgs(options, testDir)];
46
+ }
47
+ else {
48
+ cmd = 'python';
49
+ args = ['-m', 'pytest', ...buildPytestArgs(options, testDir)];
50
+ }
15
51
  console.log('');
16
52
  console.log(chalk_1.default.bold.cyan(' zosma-qa') +
17
53
  chalk_1.default.dim(' running: ') +
18
- chalk_1.default.white(`npx playwright ${args.join(' ')}`));
54
+ chalk_1.default.white(`${cmd} ${args.join(' ')}`));
19
55
  console.log('');
20
- const exitCode = await spawnPlaywright(args);
56
+ const exitCode = await spawnProcess(cmd, args, cwd);
21
57
  if (exitCode !== 0) {
22
- console.log('');
23
- console.log(chalk_1.default.dim(` View the report: `) + chalk_1.default.cyan('npx zosma-qa report'));
24
58
  process.exit(exitCode);
25
59
  }
26
60
  }
27
- // ─── helpers ──────────────────────────────────────────────────────────────────
28
- function buildArgs(options) {
61
+ // ─── Playwright dispatch ───────────────────────────────────────────────────────
62
+ function buildPlaywrightArgs(options) {
29
63
  const args = ['test'];
30
64
  if (options.project)
31
65
  args.push('--project', options.project);
@@ -43,11 +77,26 @@ function buildArgs(options) {
43
77
  args.push('--reporter', options.reporter);
44
78
  return args;
45
79
  }
46
- function spawnPlaywright(args) {
80
+ async function runPlaywright(options, cwd) {
81
+ const args = buildPlaywrightArgs(options);
82
+ console.log('');
83
+ console.log(chalk_1.default.bold.cyan(' zosma-qa') +
84
+ chalk_1.default.dim(' running: ') +
85
+ chalk_1.default.white(`npx playwright ${args.join(' ')}`));
86
+ console.log('');
87
+ const exitCode = await spawnProcess('npx', ['playwright', ...args], cwd);
88
+ if (exitCode !== 0) {
89
+ console.log('');
90
+ console.log(chalk_1.default.dim(` View the report: `) + chalk_1.default.cyan('npx zosma-qa report'));
91
+ process.exit(exitCode);
92
+ }
93
+ }
94
+ // ─── helpers ──────────────────────────────────────────────────────────────────
95
+ function spawnProcess(cmd, args, cwd) {
47
96
  return new Promise((resolve, reject) => {
48
- const child = (0, node_child_process_1.spawn)('npx', ['playwright', ...args], {
97
+ const child = (0, node_child_process_1.spawn)(cmd, args, {
49
98
  stdio: 'inherit',
50
- cwd: process.cwd(),
99
+ cwd,
51
100
  env: { ...process.env },
52
101
  });
53
102
  child.on('close', (code) => resolve(code ?? 1));
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":";;;;;AAiBA,4BAkBC;AAnCD,2DAA2C;AAC3C,kDAA0B;AAY1B;;;GAGG;AACI,KAAK,UAAU,QAAQ,CAAC,UAAsB,EAAE;IACrD,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAEhC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QAC3B,eAAK,CAAC,GAAG,CAAC,aAAa,CAAC;QACxB,eAAK,CAAC,KAAK,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAClD,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;IAE7C,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAClF,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF,SAAS,SAAS,CAAC,OAAmB;IACpC,MAAM,IAAI,GAAa,CAAC,MAAM,CAAC,CAAC;IAEhC,IAAI,OAAO,CAAC,OAAO;QAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7D,IAAI,OAAO,CAAC,IAAI;QAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,IAAI,OAAO,CAAC,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1C,IAAI,OAAO,CAAC,KAAK;QAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,OAAO,CAAC,OAAO;QAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7D,IAAI,OAAO,CAAC,KAAK;QAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACvD,IAAI,OAAO,CAAC,QAAQ;QAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEhE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,eAAe,CAAC,IAAc;IACrC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,IAAA,0BAAK,EAAC,KAAK,EAAE,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,EAAE;YAClD,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;SACxB,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;QAChD,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zosmaai/zosma-qa-cli",
3
- "version": "0.0.6",
3
+ "version": "0.0.7",
4
4
  "description": "CLI for zosma-qa — zero-config QA platform",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -35,8 +35,8 @@
35
35
  "chalk": "^5.3.0",
36
36
  "commander": "^12.1.0",
37
37
  "ora": "^8.1.1",
38
- "@zosmaai/zosma-qa-core": "0.0.6",
39
- "@zosmaai/zosma-qa-playwright": "0.0.6"
38
+ "@zosmaai/zosma-qa-playwright": "0.0.7",
39
+ "@zosmaai/zosma-qa-core": "0.0.7"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@types/node": "^20.0.0",