@testspectra/cli 1.2.0 → 1.2.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@testspectra/cli",
3
- "version": "1.2.0",
3
+ "version": "1.2.2",
4
4
  "description": "TestSpectra Cross-Platform Test Runner CLI",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -25,10 +25,10 @@
25
25
  ],
26
26
  "dependencies": {
27
27
  "@clack/prompts": "^1.7.0",
28
- "@testspectra/matchers": "^1.2.0",
29
- "@testspectra/react": "^1.2.0",
30
- "@testspectra/reporter": "^1.2.0",
31
- "@testspectra/skills": "^1.2.0",
28
+ "@testspectra/matchers": "^1.2.2",
29
+ "@testspectra/react": "^1.2.2",
30
+ "@testspectra/reporter": "^1.2.2",
31
+ "@testspectra/skills": "^1.2.2",
32
32
  "chalk": "^5.3.0",
33
33
  "commander": "^12.1.0",
34
34
  "cross-spawn": "^7.0.6",
@@ -39,9 +39,9 @@
39
39
  "zod": "^3.23.8"
40
40
  },
41
41
  "optionalDependencies": {
42
- "@testspectra/cli-darwin-arm64": "1.2.0",
43
- "@testspectra/cli-linux-x64": "1.2.0",
44
- "@testspectra/cli-win32-x64": "1.2.0"
42
+ "@testspectra/cli-darwin-arm64": "1.2.2",
43
+ "@testspectra/cli-linux-x64": "1.2.2",
44
+ "@testspectra/cli-win32-x64": "1.2.2"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@types/cross-spawn": "^6.0.6",
@@ -17,9 +17,9 @@
17
17
  "postinstall": "spectra sync-types"
18
18
  },
19
19
  "devDependencies": {
20
- "@testspectra/cli": "^1.2.0",
21
- "@testspectra/matchers": "^1.2.0",
22
- "@testspectra/plugin-demo": "^1.2.0",
20
+ "@testspectra/cli": "^1.2.2",
21
+ "@testspectra/matchers": "^1.2.2",
22
+ "@testspectra/plugin-demo": "^1.2.2",
23
23
  "@types/node": "^20.14.0",
24
24
  "@wdio/cli": "^9.2.8",
25
25
  "@wdio/local-runner": "^9.2.8",
@@ -12,8 +12,8 @@
12
12
  "postinstall": "spectra sync-types"
13
13
  },
14
14
  "devDependencies": {
15
- "@testspectra/cli": "^1.2.0",
16
- "@testspectra/matchers": "^1.2.0",
15
+ "@testspectra/cli": "^1.2.2",
16
+ "@testspectra/matchers": "^1.2.2",
17
17
  "@types/node": "^20.14.0",
18
18
  "@wdio/cli": "^9.2.8",
19
19
  "@wdio/local-runner": "^9.2.8",
@@ -24,6 +24,6 @@
24
24
  "nx": "^20.8.4",
25
25
  "typescript": "^5.4.5",
26
26
  "webdriverio": "^9.2.8",
27
- "@testspectra/plugin-demo": "^1.2.0"
27
+ "@testspectra/plugin-demo": "^1.2.2"
28
28
  }
29
29
  }
@@ -14,9 +14,9 @@
14
14
  "postinstall": "spectra sync-types"
15
15
  },
16
16
  "devDependencies": {
17
- "@testspectra/cli": "^1.2.0",
18
- "@testspectra/matchers": "^1.2.0",
19
- "@testspectra/react": "^1.2.0",
17
+ "@testspectra/cli": "^1.2.2",
18
+ "@testspectra/matchers": "^1.2.2",
19
+ "@testspectra/react": "^1.2.2",
20
20
  "@types/node": "^20.14.0",
21
21
  "@types/react": "^18.3.3",
22
22
  "@types/react-dom": "^18.3.0",
@@ -0,0 +1,21 @@
1
+ ---
2
+ id: TC-0010
3
+ title: Verify scoped child lookup within badge root
4
+ priority: High
5
+ caseType: Positive
6
+ status: automated
7
+ coverage:
8
+ web: automated
9
+ ---
10
+
11
+ # TC-0010: Scoped Child Lookup Within Badge Root
12
+
13
+ Verify that `Spectra.get('~badge').get('~badge-label')` resolves the child element scoped to the
14
+ badge root (not page-wide), and that the collection form `Spectra.get('~badge').getAll('~badge-label')`
15
+ finds the same scoped descendants.
16
+
17
+ ## Test Steps
18
+
19
+ 1. Mount `<Badge label="Scoped Badge" dot />`.
20
+ 2. Verify `Spectra.get('~badge').get('~badge-label')` resolves to the scoped label with the expected text.
21
+ 3. Verify `Spectra.get('~badge').getAll('~badge-label')` finds exactly one scoped label.
@@ -0,0 +1,9 @@
1
+ import { Badge } from '../../../src/components/Badge/Badge.js';
2
+ import { withProviders } from '../../../src/test-utils.js';
3
+
4
+ it('Verify scoped child lookup within badge root', async () => {
5
+ await Spectra.mount(withProviders(<Badge label="Scoped Badge" dot />));
6
+
7
+ await Spectra.get('~badge').get('~badge-label').shouldHaveText('Scoped Badge');
8
+ await Spectra.get('~badge').getAll('~badge-label').shouldHaveLength(1);
9
+ });
@@ -0,0 +1,21 @@
1
+ ---
2
+ id: TC-0011
3
+ title: Verify button bounds and parent element access
4
+ priority: Medium
5
+ caseType: Positive
6
+ status: automated
7
+ coverage:
8
+ web: automated
9
+ ---
10
+
11
+ # TC-0006: Button Bounds and Parent Access
12
+
13
+ Verify that `Spectra.get()` exposes element bounds (position + size), can navigate up the DOM tree via `parent()`, and can locate an ancestor via `closest()`.
14
+
15
+ ## Test Steps
16
+
17
+ 1. Mount `<div><Button label="Bounds Test" /></div>`.
18
+ 2. Get the button via `Spectra.get('~button')` and read its bounds.
19
+ 3. Verify `bounds.width` and `bounds.height` are greater than 0, and `bounds.x` / `bounds.y` are numbers.
20
+ 4. Call `parent()` and verify the parent element is visible.
21
+ 5. Call `closest('div')` and verify a matching ancestor is returned.
@@ -0,0 +1,29 @@
1
+ import { Button } from '../../../src/components/Button/Button.js';
2
+ import { withProviders } from '../../../src/test-utils.js';
3
+
4
+ it('Verify button bounds and parent element access', async () => {
5
+ await Spectra.mount(
6
+ withProviders(
7
+ <div>
8
+ <Button label="Bounds Test" />
9
+ </div>,
10
+ ),
11
+ );
12
+
13
+ const button = Spectra.get('~button');
14
+
15
+ // getBounds returns position + size
16
+ const bounds = await button.getBounds();
17
+ if (!(bounds.width > 0) || !(bounds.height > 0)) {
18
+ throw new Error(`Expected positive button bounds, got ${JSON.stringify(bounds)}`);
19
+ }
20
+
21
+ // parent() navigates up the DOM tree
22
+ await button.parent().shouldBeVisible();
23
+
24
+ // closest() finds the matching ancestor
25
+ const wrapper = await button.closest('div');
26
+ if (!wrapper) {
27
+ throw new Error('Expected button.closest("div") to resolve an ancestor');
28
+ }
29
+ });
@@ -0,0 +1,20 @@
1
+ ---
2
+ id: TC-0012
3
+ title: Verify button wait states and element removal detection
4
+ priority: Medium
5
+ caseType: Positive
6
+ status: automated
7
+ coverage:
8
+ web: automated
9
+ ---
10
+
11
+ # TC-0007: Button Wait States
12
+
13
+ Verify that a mounted button satisfies explicit wait conditions such as `waitForClickable()` before asserting visibility.
14
+
15
+ ## Test Steps
16
+
17
+ 1. Mount `<div><Button label="Wait Test" /></div>`.
18
+ 2. Get the button via `Spectra.get('~button')`.
19
+ 3. Call `waitForClickable({ timeout: 3000 })` and verify it resolves to `true`.
20
+ 4. Verify the button is visible.
@@ -0,0 +1,23 @@
1
+ import { Button } from '../../../src/components/Button/Button.js';
2
+ import { withProviders } from '../../../src/test-utils.js';
3
+
4
+ it('Verify button wait states and element removal detection', async () => {
5
+ await Spectra.mount(
6
+ withProviders(
7
+ <div>
8
+ <Button label="Wait Test" />
9
+ </div>,
10
+ ),
11
+ );
12
+
13
+ const button = Spectra.get('~button');
14
+
15
+ // waitForClickable — button should be clickable
16
+ const clickable = await button.waitForClickable({ timeout: 3000 });
17
+ if (!clickable) {
18
+ throw new Error('Expected button to become clickable within timeout');
19
+ }
20
+
21
+ // Static mount stays visible; removal waits are covered by integration tests.
22
+ await button.shouldBeVisible();
23
+ });
@@ -0,0 +1,20 @@
1
+ ---
2
+ id: TC-0009
3
+ title: Verify input bounds and closest ancestor
4
+ priority: Medium
5
+ caseType: Positive
6
+ status: automated
7
+ coverage:
8
+ web: automated
9
+ ---
10
+
11
+ # TC-0009: Input Bounds and Closest Ancestor
12
+
13
+ Verify that `Spectra.get('input')` exposes element bounds (position + size) and can locate a matching ancestor via `closest()`.
14
+
15
+ ## Test Steps
16
+
17
+ 1. Mount `<Input placeholder="Bounds check" />`.
18
+ 2. Get the input via `Spectra.get('input')` and read its bounds.
19
+ 3. Verify `bounds.width` and `bounds.height` are greater than 0.
20
+ 4. Call `closest('div')` and verify a matching ancestor is returned.
@@ -0,0 +1,18 @@
1
+ import { Input } from '../../../src/components/Input/Input.js';
2
+ import { withProviders } from '../../../src/test-utils.js';
3
+
4
+ it('Verify input bounds and closest ancestor', async () => {
5
+ await Spectra.mount(withProviders(<Input placeholder="Bounds check" />));
6
+
7
+ const input = Spectra.get('input');
8
+
9
+ const bounds = await input.getBounds();
10
+ if (!(bounds.width > 0) || !(bounds.height > 0)) {
11
+ throw new Error(`Expected positive input bounds, got ${JSON.stringify(bounds)}`);
12
+ }
13
+
14
+ const closest = await input.closest('div');
15
+ if (!closest) {
16
+ throw new Error('Expected input.closest("div") to resolve an ancestor');
17
+ }
18
+ });
@@ -1,5 +1,5 @@
1
1
  ---
2
- id: TC-0001
2
+ id: TC-0013
3
3
  title: Verify intercepted user list renders mocked users
4
4
  priority: Critical
5
5
  caseType: Positive