@testspectra/cli 1.2.1 → 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.1",
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.1",
29
- "@testspectra/react": "^1.2.1",
30
- "@testspectra/reporter": "^1.2.1",
31
- "@testspectra/skills": "^1.2.1",
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.1",
43
- "@testspectra/cli-linux-x64": "1.2.1",
44
- "@testspectra/cli-win32-x64": "1.2.1"
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.1",
21
- "@testspectra/matchers": "^1.2.1",
22
- "@testspectra/plugin-demo": "^1.2.1",
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.1",
16
- "@testspectra/matchers": "^1.2.1",
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.1"
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.1",
18
- "@testspectra/matchers": "^1.2.1",
19
- "@testspectra/react": "^1.2.1",
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
+ });
@@ -1,5 +1,5 @@
1
1
  ---
2
- id: TC-0006
2
+ id: TC-0011
3
3
  title: Verify button bounds and parent element access
4
4
  priority: Medium
5
5
  caseType: Positive
@@ -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
+ });
@@ -1,5 +1,5 @@
1
1
  ---
2
- id: TC-0007
2
+ id: TC-0012
3
3
  title: Verify button wait states and element removal detection
4
4
  priority: Medium
5
5
  caseType: Positive
@@ -2,17 +2,22 @@ import { Button } from '../../../src/components/Button/Button.js';
2
2
  import { withProviders } from '../../../src/test-utils.js';
3
3
 
4
4
  it('Verify button wait states and element removal detection', async () => {
5
- await Spectra.mount(withProviders(
6
- <div><Button label="Wait Test" /></div>,
7
- ));
5
+ await Spectra.mount(
6
+ withProviders(
7
+ <div>
8
+ <Button label="Wait Test" />
9
+ </div>,
10
+ ),
11
+ );
8
12
 
9
13
  const button = Spectra.get('~button');
10
14
 
11
15
  // waitForClickable — button should be clickable
12
16
  const clickable = await button.waitForClickable({ timeout: 3000 });
13
- expect(clickable).toBe(true);
17
+ if (!clickable) {
18
+ throw new Error('Expected button to become clickable within timeout');
19
+ }
14
20
 
15
- // waitForUndisplayed on hidden element
16
- // waitForElementRemoved would need a dynamically removed element — skip for static mount
21
+ // Static mount stays visible; removal waits are covered by integration tests.
17
22
  await button.shouldBeVisible();
18
23
  });
@@ -7,9 +7,12 @@ it('Verify input bounds and closest ancestor', async () => {
7
7
  const input = Spectra.get('input');
8
8
 
9
9
  const bounds = await input.getBounds();
10
- expect(bounds.width).toBeGreaterThan(0);
11
- expect(bounds.height).toBeGreaterThan(0);
10
+ if (!(bounds.width > 0) || !(bounds.height > 0)) {
11
+ throw new Error(`Expected positive input bounds, got ${JSON.stringify(bounds)}`);
12
+ }
12
13
 
13
14
  const closest = await input.closest('div');
14
- expect(closest).not.toBeNull();
15
+ if (!closest) {
16
+ throw new Error('Expected input.closest("div") to resolve an ancestor');
17
+ }
15
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
@@ -1,25 +0,0 @@
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(withProviders(
6
- <div><Button label="Bounds Test" /></div>,
7
- ));
8
-
9
- const button = Spectra.get('~button');
10
-
11
- // getBounds returns position + size
12
- const bounds = await button.getBounds();
13
- expect(bounds.width).toBeGreaterThan(0);
14
- expect(bounds.height).toBeGreaterThan(0);
15
- expect(typeof bounds.x).toBe('number');
16
- expect(typeof bounds.y).toBe('number');
17
-
18
- // parent() navigates up the DOM tree
19
- const parent = button.parent();
20
- await parent.shouldBeVisible();
21
-
22
- // closest() finds matching ancestor
23
- const wrapper = await button.closest('div');
24
- expect(wrapper).not.toBeNull();
25
- });