@testspectra/cli 1.0.70 → 1.1.1
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/LICENSE.md +48 -0
- package/README.md +36 -270
- package/bin/.testspectra-runner.hash +1 -0
- package/bin/spectra.js +1 -1
- package/bin/testspectra-runner +0 -0
- package/demo-app/assets/index-DPfv5_EF.js +116 -0
- package/demo-app/assets/index-gIwu2EMV.css +1 -0
- package/demo-app/index.html +2 -2
- package/dist/.tsbuildinfo +1 -0
- package/dist/commands/__tests__/cloud-run.test.d.ts +1 -0
- package/dist/commands/__tests__/cloud-run.test.js +93 -0
- package/dist/commands/__tests__/doctor.test.d.ts +1 -0
- package/dist/commands/__tests__/doctor.test.js +39 -0
- package/dist/commands/__tests__/init.test.d.ts +1 -0
- package/dist/commands/__tests__/init.test.js +148 -0
- package/dist/commands/__tests__/license.test.d.ts +1 -0
- package/dist/commands/__tests__/license.test.js +13 -0
- package/dist/commands/__tests__/refactor.test.d.ts +1 -0
- package/dist/commands/__tests__/refactor.test.js +64 -0
- package/dist/commands/__tests__/run-e2e.test.d.ts +1 -0
- package/dist/commands/__tests__/run-e2e.test.js +181 -0
- package/dist/commands/__tests__/run.test.d.ts +1 -0
- package/dist/commands/__tests__/run.test.js +197 -0
- package/dist/commands/__tests__/watch.test.d.ts +1 -0
- package/dist/commands/__tests__/watch.test.js +155 -0
- package/dist/commands/add.js +86 -85
- package/dist/commands/cloud-run.d.ts +11 -0
- package/dist/commands/cloud-run.js +118 -0
- package/dist/commands/demo.js +7 -7
- package/dist/commands/devices.d.ts +14 -2
- package/dist/commands/devices.js +44 -34
- package/dist/commands/doctor.d.ts +3 -1
- package/dist/commands/doctor.js +43 -264
- package/dist/commands/init.d.ts +1 -1
- package/dist/commands/init.js +206 -196
- package/dist/commands/install.d.ts +4 -0
- package/dist/commands/install.js +59 -0
- package/dist/commands/license.d.ts +4 -0
- package/dist/commands/license.js +30 -0
- package/dist/commands/refactor.d.ts +8 -0
- package/dist/commands/refactor.js +78 -0
- package/dist/commands/run.d.ts +22 -1
- package/dist/commands/run.js +252 -109
- package/dist/commands/sync-types.d.ts +4 -0
- package/dist/commands/sync-types.js +14 -0
- package/dist/commands/update.js +39 -43
- package/dist/commands/watch.d.ts +6 -0
- package/dist/commands/watch.js +47 -43
- package/dist/config/loader.d.ts +1 -1
- package/dist/config/loader.js +40 -25
- package/dist/config/schema.d.ts +117 -49
- package/dist/config/schema.js +41 -34
- package/dist/generator/__tests__/tsconfig-isolation.test.d.ts +1 -0
- package/dist/generator/__tests__/tsconfig-isolation.test.js +278 -0
- package/dist/generator/__tests__/type-generator.test.d.ts +1 -0
- package/dist/generator/__tests__/type-generator.test.js +386 -0
- package/dist/generator/index.d.ts +2 -0
- package/dist/generator/index.js +2 -0
- package/dist/generator/tsconfig-generator.d.ts +27 -0
- package/dist/generator/tsconfig-generator.js +391 -0
- package/dist/generator/type-generator.d.ts +36 -0
- package/dist/generator/type-generator.js +644 -0
- package/dist/index.d.ts +9 -5
- package/dist/index.js +124 -51
- package/dist/lifecycle/__tests__/lifecycle-engine.test.d.ts +1 -0
- package/dist/lifecycle/__tests__/lifecycle-engine.test.js +290 -0
- package/dist/lifecycle/hook-discovery.d.ts +24 -0
- package/dist/lifecycle/hook-discovery.js +60 -0
- package/dist/lifecycle/hook-dispatcher.d.ts +34 -0
- package/dist/lifecycle/hook-dispatcher.js +190 -0
- package/dist/lifecycle/index.d.ts +3 -0
- package/dist/lifecycle/index.js +3 -0
- package/dist/lifecycle/parallel-grouping.d.ts +27 -0
- package/dist/lifecycle/parallel-grouping.js +151 -0
- package/dist/mobile/__tests__/android-device-e2e.test.d.ts +1 -0
- package/dist/mobile/__tests__/android-device-e2e.test.js +53 -0
- package/dist/mobile/__tests__/device-pool.test.d.ts +1 -0
- package/dist/mobile/__tests__/device-pool.test.js +97 -0
- package/dist/mobile/device-pool.d.ts +23 -0
- package/dist/mobile/device-pool.js +1 -0
- package/dist/mobile/index.d.ts +1 -0
- package/dist/mobile/index.js +1 -0
- package/dist/refactor/__tests__/refactor-engine.test.d.ts +1 -0
- package/dist/refactor/__tests__/refactor-engine.test.js +175 -0
- package/dist/refactor/index.d.ts +1 -0
- package/dist/refactor/index.js +1 -0
- package/dist/refactor/refactor-engine.d.ts +25 -0
- package/dist/refactor/refactor-engine.js +255 -0
- package/dist/reporter/__tests__/semantic-formatter.test.d.ts +1 -0
- package/dist/reporter/__tests__/semantic-formatter.test.js +73 -0
- package/dist/reporter/semantic-formatter.d.ts +6 -0
- package/dist/reporter/semantic-formatter.js +191 -0
- package/dist/reporter/summary-view.d.ts +12 -0
- package/dist/reporter/summary-view.js +19 -0
- package/dist/reporter/terminal-stream.d.ts +32 -0
- package/dist/reporter/terminal-stream.js +82 -0
- package/dist/reporter/types.d.ts +2 -0
- package/dist/reporter/types.js +1 -0
- package/dist/runner/bridge.d.ts +10 -5
- package/dist/runner/bridge.js +69 -44
- package/dist/runner/reporter.d.ts +30 -2
- package/dist/runner/reporter.js +419 -13
- package/dist/server/demo.js +43 -44
- package/dist/types/generator.d.ts +1 -17
- package/dist/types/generator.js +1 -443
- package/dist/utils/demo-server.js +38 -35
- package/package.json +20 -12
- package/templates/default/CLAUDE.md +7 -5
- package/templates/default/fixtures/apiData.json +24 -0
- package/templates/default/package.json +13 -4
- package/templates/default/page-objects/MatchersPage/mobile.ts +41 -16
- package/templates/default/page-objects/MatchersPage/web.ts +14 -0
- package/templates/default/page-objects/NavigationPage/mobile.ts +10 -1
- package/templates/default/page-objects/PlaygroundPage/mobile.ts +27 -17
- package/templates/default/page-objects/PlaygroundPage/web.ts +2 -0
- package/templates/default/specs/ApiInterception/TC-0008-fetch-mocking/mobile.test.ts +11 -0
- package/templates/default/specs/ApiInterception/TC-0008-fetch-mocking/spec.md +12 -0
- package/templates/default/specs/ApiInterception/TC-0008-fetch-mocking/web.test.ts +27 -0
- package/templates/default/specs/ApiInterception/TC-0009-post-mocking/mobile.test.ts +16 -0
- package/templates/default/specs/ApiInterception/TC-0009-post-mocking/spec.md +12 -0
- package/templates/default/specs/ApiInterception/TC-0009-post-mocking/web.test.ts +24 -0
- package/templates/default/specs/ApiInterception/suite.md +9 -0
- package/templates/default/specs/BrowserContext/TC-0007-title-and-navigation/mobile.test.ts +7 -1
- package/templates/default/specs/BrowserContext/TC-0007-title-and-navigation/web.test.ts +17 -3
- package/templates/default/specs/ContentMatchers/TC-0005-text-and-values/mobile.test.ts +15 -1
- package/templates/default/specs/ContentMatchers/TC-0005-text-and-values/web.test.ts +14 -4
- package/templates/default/specs/ContentMatchers/TC-0006-collections-and-empty/mobile.test.ts +9 -1
- package/templates/default/specs/ContentMatchers/TC-0006-collections-and-empty/web.test.ts +8 -3
- package/templates/default/specs/ElementMatchers/TC-0003-visibility-and-dom/mobile.test.ts +9 -1
- package/templates/default/specs/ElementMatchers/TC-0003-visibility-and-dom/web.test.ts +9 -3
- package/templates/default/specs/ElementMatchers/TC-0004-states-and-attributes/mobile.test.ts +27 -1
- package/templates/default/specs/ElementMatchers/TC-0004-states-and-attributes/web.test.ts +27 -6
- package/templates/default/specs/Playground/TC-0001-form-controls/mobile.test.ts +4 -1
- package/templates/default/specs/Playground/TC-0001-form-controls/web.test.ts +3 -3
- package/templates/default/specs/Playground/TC-0002-toggle-elements/mobile.test.ts +4 -1
- package/templates/default/specs/Playground/TC-0002-toggle-elements/web.test.ts +2 -2
- package/templates/default/spectra.config.ts +21 -14
- package/templates/default/support/actions/fillCredentials/mobile.action.ts +2 -2
- package/templates/default/support/steps/togglePlaygroundStates/mobile.step.ts +2 -0
- package/templates/default/support/steps/togglePlaygroundStates/web.step.ts +2 -2
- package/templates/default/support/steps/verifyPlaygroundState/mobile.step.ts +3 -1
- package/templates/default/support/steps/verifyPlaygroundState/web.step.ts +3 -3
- package/templates/default/tsconfig.json +3 -1
- package/templates/nx/.nx/workspace-data/d/daemon.log +168 -0
- package/templates/nx/CLAUDE.md +2 -2
- package/templates/nx/package.json +7 -5
- package/templates/nx/packages/matchers/e2e/specs/ApiInterception/TC-0008-fetch-mocking/mobile.test.ts +3 -0
- package/templates/nx/packages/matchers/e2e/specs/ApiInterception/TC-0008-fetch-mocking/spec.md +12 -0
- package/templates/nx/packages/matchers/e2e/specs/ApiInterception/TC-0008-fetch-mocking/web.test.ts +27 -0
- package/templates/nx/packages/matchers/e2e/specs/ApiInterception/TC-0009-post-mocking/mobile.test.ts +3 -0
- package/templates/nx/packages/matchers/e2e/specs/ApiInterception/TC-0009-post-mocking/spec.md +12 -0
- package/templates/nx/packages/matchers/e2e/specs/ApiInterception/TC-0009-post-mocking/web.test.ts +24 -0
- package/templates/nx/packages/matchers/e2e/specs/ApiInterception/suite.md +9 -0
- package/templates/nx/packages/matchers/e2e/specs/BrowserContext/TC-0007-title-and-navigation/web.test.ts +17 -3
- package/templates/nx/packages/matchers/e2e/specs/ContentMatchers/TC-0005-text-and-values/web.test.ts +14 -4
- package/templates/nx/packages/matchers/e2e/specs/ContentMatchers/TC-0006-collections-and-empty/web.test.ts +8 -3
- package/templates/nx/packages/matchers/e2e/specs/ElementMatchers/TC-0003-visibility-and-dom/web.test.ts +9 -3
- package/templates/nx/packages/matchers/e2e/specs/ElementMatchers/TC-0004-states-and-attributes/web.test.ts +27 -6
- package/templates/nx/packages/playground/e2e/specs/Playground/TC-0001-form-controls/web.test.ts +3 -3
- package/templates/nx/packages/playground/e2e/specs/Playground/TC-0002-toggle-elements/web.test.ts +2 -2
- package/templates/nx/pnpm-lock.yaml +6663 -0
- package/templates/nx/pnpm-workspace.yaml +2 -1
- package/templates/nx/shared/testing/fixtures/apiData.json +24 -0
- package/templates/nx/shared/testing/page-objects/MatchersPage/mobile.ts +12 -0
- package/templates/nx/shared/testing/page-objects/MatchersPage/web.ts +14 -0
- package/templates/nx/shared/testing/page-objects/PlaygroundPage/web.ts +2 -0
- package/templates/nx/shared/testing/project.json +19 -0
- package/templates/nx/shared/testing/support/steps/togglePlaygroundStates/web.step.ts +2 -2
- package/templates/nx/shared/testing/support/steps/verifyPlaygroundState/mobile.step.ts +1 -1
- package/templates/nx/shared/testing/support/steps/verifyPlaygroundState/web.step.ts +3 -3
- package/templates/nx/spectra.config.ts +19 -12
- package/templates/nx/tsconfig.json +3 -1
- package/demo-app/assets/index-DAUlrHTr.css +0 -1
- package/demo-app/assets/index-DN2Kb0A8.js +0 -100
- package/dist/index.cjs +0 -101
- package/dist/plugin.cjs +0 -575
- package/dist/plugin.d.ts +0 -16
- package/dist/plugin.js +0 -184
- package/dist/step/index.d.ts +0 -6
- package/dist/step/index.js +0 -6
- package/dist/step/matchers.d.ts +0 -14
- package/dist/step/matchers.js +0 -114
- package/dist/step/proto.d.ts +0 -46
- package/dist/step/proto.js +0 -114
- package/dist/step/runner/collection.d.ts +0 -13
- package/dist/step/runner/collection.js +0 -51
- package/dist/step/runner/single.d.ts +0 -21
- package/dist/step/runner/single.js +0 -138
- package/dist/step/spectra.d.ts +0 -34
- package/dist/step/spectra.js +0 -156
- package/dist/step/types.d.ts +0 -32
- package/dist/step/types.js +0 -5
- package/templates/default/tsconfig.spectra.android.json +0 -46
- package/templates/default/tsconfig.spectra.ios.json +0 -46
- package/templates/default/tsconfig.spectra.json +0 -22
- package/templates/default/tsconfig.spectra.web.json +0 -53
- package/templates/nx/fixtures/playgroundData.json +0 -7
- package/templates/nx/global-hooks/after/mobile.hook.ts +0 -3
- package/templates/nx/global-hooks/after/web.hook.ts +0 -3
- package/templates/nx/global-hooks/before/mobile.hook.ts +0 -3
- package/templates/nx/global-hooks/before/web.hook.ts +0 -3
- package/templates/nx/page-objects/MatchersPage/mobile.ts +0 -21
- package/templates/nx/page-objects/MatchersPage/web.ts +0 -23
- package/templates/nx/page-objects/NavigationPage/mobile.ts +0 -5
- package/templates/nx/page-objects/NavigationPage/web.ts +0 -8
- package/templates/nx/page-objects/PlaygroundPage/mobile.ts +0 -26
- package/templates/nx/page-objects/PlaygroundPage/web.ts +0 -29
- package/templates/nx/specs/BrowserContext/TC-0007-title-and-navigation/mobile.test.ts +0 -3
- package/templates/nx/specs/BrowserContext/TC-0007-title-and-navigation/spec.md +0 -12
- package/templates/nx/specs/BrowserContext/TC-0007-title-and-navigation/web.test.ts +0 -5
- package/templates/nx/specs/BrowserContext/suite.md +0 -9
- package/templates/nx/specs/ContentMatchers/TC-0005-text-and-values/mobile.test.ts +0 -3
- package/templates/nx/specs/ContentMatchers/TC-0005-text-and-values/spec.md +0 -12
- package/templates/nx/specs/ContentMatchers/TC-0005-text-and-values/web.test.ts +0 -7
- package/templates/nx/specs/ContentMatchers/TC-0006-collections-and-empty/mobile.test.ts +0 -3
- package/templates/nx/specs/ContentMatchers/TC-0006-collections-and-empty/spec.md +0 -12
- package/templates/nx/specs/ContentMatchers/TC-0006-collections-and-empty/web.test.ts +0 -6
- package/templates/nx/specs/ContentMatchers/suite.md +0 -9
- package/templates/nx/specs/ElementMatchers/TC-0003-visibility-and-dom/mobile.test.ts +0 -3
- package/templates/nx/specs/ElementMatchers/TC-0003-visibility-and-dom/spec.md +0 -12
- package/templates/nx/specs/ElementMatchers/TC-0003-visibility-and-dom/web.test.ts +0 -5
- package/templates/nx/specs/ElementMatchers/TC-0004-states-and-attributes/mobile.test.ts +0 -3
- package/templates/nx/specs/ElementMatchers/TC-0004-states-and-attributes/spec.md +0 -12
- package/templates/nx/specs/ElementMatchers/TC-0004-states-and-attributes/web.test.ts +0 -8
- package/templates/nx/specs/ElementMatchers/hooks/after/mobile.hook.ts +0 -1
- package/templates/nx/specs/ElementMatchers/hooks/after/web.hook.ts +0 -1
- package/templates/nx/specs/ElementMatchers/hooks/afterEach/mobile.hook.ts +0 -1
- package/templates/nx/specs/ElementMatchers/hooks/afterEach/web.hook.ts +0 -1
- package/templates/nx/specs/ElementMatchers/hooks/before/mobile.hook.ts +0 -1
- package/templates/nx/specs/ElementMatchers/hooks/before/web.hook.ts +0 -1
- package/templates/nx/specs/ElementMatchers/hooks/beforeEach/mobile.hook.ts +0 -1
- package/templates/nx/specs/ElementMatchers/hooks/beforeEach/web.hook.ts +0 -1
- package/templates/nx/specs/ElementMatchers/suite.md +0 -9
- package/templates/nx/specs/Playground/TC-0001-form-controls/mobile.test.ts +0 -3
- package/templates/nx/specs/Playground/TC-0001-form-controls/spec.md +0 -12
- package/templates/nx/specs/Playground/TC-0001-form-controls/web.test.ts +0 -6
- package/templates/nx/specs/Playground/TC-0002-toggle-elements/mobile.test.ts +0 -3
- package/templates/nx/specs/Playground/TC-0002-toggle-elements/spec.md +0 -12
- package/templates/nx/specs/Playground/TC-0002-toggle-elements/web.test.ts +0 -6
- package/templates/nx/specs/Playground/hooks/after/mobile.hook.ts +0 -1
- package/templates/nx/specs/Playground/hooks/after/web.hook.ts +0 -1
- package/templates/nx/specs/Playground/hooks/afterEach/mobile.hook.ts +0 -1
- package/templates/nx/specs/Playground/hooks/afterEach/web.hook.ts +0 -1
- package/templates/nx/specs/Playground/hooks/before/mobile.hook.ts +0 -1
- package/templates/nx/specs/Playground/hooks/before/web.hook.ts +0 -1
- package/templates/nx/specs/Playground/hooks/beforeEach/mobile.hook.ts +0 -1
- package/templates/nx/specs/Playground/hooks/beforeEach/web.hook.ts +0 -1
- package/templates/nx/specs/Playground/suite.md +0 -9
- package/templates/nx/support/actions/fillCredentials/mobile.action.ts +0 -4
- package/templates/nx/support/actions/fillCredentials/web.action.ts +0 -4
- package/templates/nx/support/steps/togglePlaygroundStates/mobile.step.ts +0 -3
- package/templates/nx/support/steps/togglePlaygroundStates/step.md +0 -7
- package/templates/nx/support/steps/togglePlaygroundStates/web.step.ts +0 -5
- package/templates/nx/support/steps/verifyPlaygroundState/mobile.step.ts +0 -4
- package/templates/nx/support/steps/verifyPlaygroundState/step.md +0 -7
- package/templates/nx/support/steps/verifyPlaygroundState/web.step.ts +0 -6
- package/templates/nx/tsconfig.spectra.android.json +0 -39
- package/templates/nx/tsconfig.spectra.ios.json +0 -39
- package/templates/nx/tsconfig.spectra.json +0 -25
- package/templates/nx/tsconfig.spectra.shared.json +0 -25
- package/templates/nx/tsconfig.spectra.web.json +0 -45
- /package/templates/{nx/specs/BrowserContext → default/specs/ApiInterception}/hooks/after/mobile.hook.ts +0 -0
- /package/templates/{nx/specs/BrowserContext → default/specs/ApiInterception}/hooks/after/web.hook.ts +0 -0
- /package/templates/{nx/specs/BrowserContext → default/specs/ApiInterception}/hooks/afterEach/mobile.hook.ts +0 -0
- /package/templates/{nx/specs/BrowserContext → default/specs/ApiInterception}/hooks/afterEach/web.hook.ts +0 -0
- /package/templates/{nx/specs/BrowserContext → default/specs/ApiInterception}/hooks/before/mobile.hook.ts +0 -0
- /package/templates/{nx/specs/BrowserContext → default/specs/ApiInterception}/hooks/before/web.hook.ts +0 -0
- /package/templates/{nx/specs/BrowserContext → default/specs/ApiInterception}/hooks/beforeEach/mobile.hook.ts +0 -0
- /package/templates/{nx/specs/BrowserContext → default/specs/ApiInterception}/hooks/beforeEach/web.hook.ts +0 -0
- /package/templates/nx/{specs/ContentMatchers → packages/matchers/e2e/specs/ApiInterception}/hooks/after/mobile.hook.ts +0 -0
- /package/templates/nx/{specs/ContentMatchers → packages/matchers/e2e/specs/ApiInterception}/hooks/after/web.hook.ts +0 -0
- /package/templates/nx/{specs/ContentMatchers → packages/matchers/e2e/specs/ApiInterception}/hooks/afterEach/mobile.hook.ts +0 -0
- /package/templates/nx/{specs/ContentMatchers → packages/matchers/e2e/specs/ApiInterception}/hooks/afterEach/web.hook.ts +0 -0
- /package/templates/nx/{specs/ContentMatchers → packages/matchers/e2e/specs/ApiInterception}/hooks/before/mobile.hook.ts +0 -0
- /package/templates/nx/{specs/ContentMatchers → packages/matchers/e2e/specs/ApiInterception}/hooks/before/web.hook.ts +0 -0
- /package/templates/nx/{specs/ContentMatchers → packages/matchers/e2e/specs/ApiInterception}/hooks/beforeEach/mobile.hook.ts +0 -0
- /package/templates/nx/{specs/ContentMatchers → packages/matchers/e2e/specs/ApiInterception}/hooks/beforeEach/web.hook.ts +0 -0
|
@@ -4,7 +4,7 @@ export default defineConfig({
|
|
|
4
4
|
webConfig: {
|
|
5
5
|
baseUrl: "http://localhost:5173",
|
|
6
6
|
maxConcurrentSessions: "1",
|
|
7
|
-
|
|
7
|
+
headless: true,
|
|
8
8
|
implicitWait: "5000",
|
|
9
9
|
pageLoadTimeout: "30000",
|
|
10
10
|
scriptTimeout: "30000",
|
|
@@ -18,32 +18,39 @@ export default defineConfig({
|
|
|
18
18
|
},
|
|
19
19
|
],
|
|
20
20
|
androidConfig: {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
deviceName: "emulator-5554",
|
|
25
|
-
automationName: "UiAutomator2",
|
|
26
|
-
appPackage: "",
|
|
27
|
-
appActivity: "",
|
|
21
|
+
driverServer: "tcp://127.0.0.1:8200",
|
|
22
|
+
appPackage: "dev.testspectra.demoapp",
|
|
23
|
+
appActivity: "dev.testspectra.demoapp.MainActivity",
|
|
28
24
|
autoGrantPermissions: true,
|
|
29
25
|
noReset: false,
|
|
30
26
|
implicitWait: "10000",
|
|
31
27
|
parallelizationMode: "suite",
|
|
28
|
+
devices: [
|
|
29
|
+
{
|
|
30
|
+
id: "emulator-5554",
|
|
31
|
+
name: "Pixel 8a Emulator",
|
|
32
|
+
version: "14.0",
|
|
33
|
+
systemPort: 8200,
|
|
34
|
+
},
|
|
35
|
+
],
|
|
32
36
|
},
|
|
33
37
|
iosConfig: {
|
|
34
38
|
appiumServer: "http://127.0.0.1:4723",
|
|
35
|
-
platformName: "iOS",
|
|
36
|
-
platformVersion: "16.0",
|
|
37
|
-
deviceName: "iPhone 14",
|
|
38
39
|
automationName: "XCUITest",
|
|
39
40
|
bundleId: "",
|
|
40
|
-
udid: "auto",
|
|
41
|
-
xcodeOrgId: "",
|
|
42
|
-
xcodeSigningId: "iPhone Developer",
|
|
43
41
|
autoAcceptAlerts: true,
|
|
44
42
|
noReset: false,
|
|
45
43
|
implicitWait: "10000",
|
|
46
44
|
parallelizationMode: "suite",
|
|
45
|
+
devices: [
|
|
46
|
+
{
|
|
47
|
+
id: "iphone-15-pro",
|
|
48
|
+
name: "iPhone 15 Pro Simulator",
|
|
49
|
+
version: "17.0",
|
|
50
|
+
udid: "auto",
|
|
51
|
+
wdaLocalPort: 8100,
|
|
52
|
+
},
|
|
53
|
+
],
|
|
47
54
|
},
|
|
48
55
|
loadConfig: {
|
|
49
56
|
virtualUsers: "10",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export default async function fillCredentials(this: any, email: string, token: string) {
|
|
2
|
-
await this.get("~
|
|
3
|
-
await this.get("~
|
|
2
|
+
await this.get("~email-input").type(email);
|
|
3
|
+
await this.get("~token-input").type(token);
|
|
4
4
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export default async function togglePlaygroundStates() {
|
|
2
2
|
await PlaygroundPage.open();
|
|
3
|
-
await PlaygroundPage.hiddenElement.
|
|
4
|
-
await PlaygroundPage.existingElement.
|
|
3
|
+
await PlaygroundPage.hiddenElement.shouldBeVisible();
|
|
4
|
+
await PlaygroundPage.existingElement.shouldExist();
|
|
5
5
|
}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export default async function verifyPlaygroundState() {
|
|
2
2
|
await PlaygroundPage.open();
|
|
3
|
-
await PlaygroundPage.visibleElement.
|
|
3
|
+
await PlaygroundPage.visibleElement.shouldBeVisible();
|
|
4
|
+
await PlaygroundPage.enabledButton.shouldBeEnabled();
|
|
5
|
+
await PlaygroundPage.termsCheckbox.shouldBeChecked();
|
|
4
6
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export default async function verifyPlaygroundState() {
|
|
2
2
|
await PlaygroundPage.open();
|
|
3
|
-
await PlaygroundPage.visibleElement.
|
|
4
|
-
await PlaygroundPage.enabledButton.
|
|
5
|
-
await PlaygroundPage.termsCheckbox.
|
|
3
|
+
await PlaygroundPage.visibleElement.shouldBeVisible();
|
|
4
|
+
await PlaygroundPage.enabledButton.shouldBeEnabled();
|
|
5
|
+
await PlaygroundPage.termsCheckbox.shouldBeChecked();
|
|
6
6
|
}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
[NX Daemon Server] - 2026-09-10T02:42:46.664Z - Started listening on: /private/var/folders/hw/dvsryrl10t59sqh3rht8j_pr0000gn/T/091eddd6eaf287d577f0/d.sock
|
|
2
|
+
[NX Daemon Server] - 2026-09-10T02:42:46.668Z - [WATCHER]: Subscribed to changes within: /Volumes/Home/Documents/TestSpectra/source/cli/templates/nx (native)
|
|
3
|
+
[NX Daemon Server] - 2026-09-10T02:42:46.671Z - Established a connection. Number of open connections: 1
|
|
4
|
+
[NX Daemon Server] - 2026-09-10T02:42:46.671Z - Established a connection. Number of open connections: 2
|
|
5
|
+
[NX Daemon Server] - 2026-09-10T02:42:46.672Z - Closed a connection. Number of open connections: 1
|
|
6
|
+
[NX Daemon Server] - 2026-09-10T02:42:46.672Z - [REQUEST]: Client Request for Project Graph Received
|
|
7
|
+
[NX Daemon Server] - 2026-09-10T02:42:46.724Z - [WATCHER]: Processing file changes in outputs
|
|
8
|
+
[NX Daemon Server] - 2026-09-10T02:42:46.795Z - [REQUEST]: Updated workspace context based on watched changes, recomputing project graph...
|
|
9
|
+
[NX Daemon Server] - 2026-09-10T02:42:46.795Z - [REQUEST]:
|
|
10
|
+
[NX Daemon Server] - 2026-09-10T02:42:46.795Z - [REQUEST]:
|
|
11
|
+
[NX Daemon Server] - 2026-09-10T02:42:46.798Z - Time taken for 'loadNxPlugins' 122.02837499999998ms
|
|
12
|
+
|
|
13
|
+
[0m[7m[1m[31m NX [39m[22m[27m[0m [31mFailed to parse pnpm lockfile[39m
|
|
14
|
+
|
|
15
|
+
Please open an issue at `https://github.com/nrwl/nx/issues/new?template=1-bug.yml` and provide a reproduction.
|
|
16
|
+
|
|
17
|
+
Original error: Could not find ".modules.yaml" at "/Volumes/Home/Documents/TestSpectra/source/cli/templates/nx/node_modules/.modules.yaml"
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
Error: Could not find ".modules.yaml" at "/Volumes/Home/Documents/TestSpectra/source/cli/templates/nx/node_modules/.modules.yaml"
|
|
21
|
+
at loadPnpmHoistedDepsDefinition (/Volumes/Home/Documents/TestSpectra/source/node_modules/.pnpm/nx@19.8.4/node_modules/nx/src/plugins/js/lock-file/utils/pnpm-normalizer.js:40:15)
|
|
22
|
+
at getNodes (/Volumes/Home/Documents/TestSpectra/source/node_modules/.pnpm/nx@19.8.4/node_modules/nx/src/plugins/js/lock-file/pnpm-parser.js:213:77)
|
|
23
|
+
at getPnpmLockfileNodes (/Volumes/Home/Documents/TestSpectra/source/node_modules/.pnpm/nx@19.8.4/node_modules/nx/src/plugins/js/lock-file/pnpm-parser.js:32:12)
|
|
24
|
+
at getLockFileNodes (/Volumes/Home/Documents/TestSpectra/source/node_modules/.pnpm/nx@19.8.4/node_modules/nx/src/plugins/js/lock-file/lock-file.js:48:59)
|
|
25
|
+
at exports.createNodes (/Volumes/Home/Documents/TestSpectra/source/node_modules/.pnpm/nx@19.8.4/node_modules/nx/src/plugins/js/index.js:47:64)
|
|
26
|
+
at /Volumes/Home/Documents/TestSpectra/source/node_modules/.pnpm/nx@19.8.4/node_modules/nx/src/project-graph/plugins/utils.js:47:33
|
|
27
|
+
at Array.map (<anonymous>)
|
|
28
|
+
at createNodesFromFiles (/Volumes/Home/Documents/TestSpectra/source/node_modules/.pnpm/nx@19.8.4/node_modules/nx/src/project-graph/plugins/utils.js:45:35)
|
|
29
|
+
at LoadedNxPlugin.createNodes (/Volumes/Home/Documents/TestSpectra/source/node_modules/.pnpm/nx@19.8.4/node_modules/nx/src/project-graph/plugins/internal-api.js:27:76)
|
|
30
|
+
at LoadedNxPlugin.createNodes.<computed> (/Volumes/Home/Documents/TestSpectra/source/node_modules/.pnpm/nx@19.8.4/node_modules/nx/src/project-graph/plugins/internal-api.js:44:34)
|
|
31
|
+
|
|
32
|
+
[NX Daemon Server] - 2026-09-10T02:42:46.827Z - Time taken for 'build-project-configs' 24.701040999999975ms
|
|
33
|
+
[NX Daemon Server] - 2026-09-10T02:42:46.830Z - [REQUEST]: Responding to the client with an error. Error when preparing serialized project graph. Failed to process project graph. Run "nx reset" to fix this. Please report the issue if you keep seeing it.
|
|
34
|
+
Failed to process project graph. Run "nx reset" to fix this. Please report the issue if you keep seeing it.
|
|
35
|
+
An error occurred while processing files for the nx/js/dependencies-and-lockfile plugin.
|
|
36
|
+
- pnpm-lock.yaml: Could not find ".modules.yaml" at "/Volumes/Home/Documents/TestSpectra/source/cli/templates/nx/node_modules/.modules.yaml"
|
|
37
|
+
Error: Could not find ".modules.yaml" at "/Volumes/Home/Documents/TestSpectra/source/cli/templates/nx/node_modules/.modules.yaml"
|
|
38
|
+
at loadPnpmHoistedDepsDefinition (/Volumes/Home/Documents/TestSpectra/source/node_modules/.pnpm/nx@19.8.4/node_modules/nx/src/plugins/js/lock-file/utils/pnpm-normalizer.js:40:15)
|
|
39
|
+
at getNodes (/Volumes/Home/Documents/TestSpectra/source/node_modules/.pnpm/nx@19.8.4/node_modules/nx/src/plugins/js/lock-file/pnpm-parser.js:213:77)
|
|
40
|
+
at getPnpmLockfileNodes (/Volumes/Home/Documents/TestSpectra/source/node_modules/.pnpm/nx@19.8.4/node_modules/nx/src/plugins/js/lock-file/pnpm-parser.js:32:12)
|
|
41
|
+
at getLockFileNodes (/Volumes/Home/Documents/TestSpectra/source/node_modules/.pnpm/nx@19.8.4/node_modules/nx/src/plugins/js/lock-file/lock-file.js:48:59)
|
|
42
|
+
at exports.createNodes (/Volumes/Home/Documents/TestSpectra/source/node_modules/.pnpm/nx@19.8.4/node_modules/nx/src/plugins/js/index.js:47:64)
|
|
43
|
+
at /Volumes/Home/Documents/TestSpectra/source/node_modules/.pnpm/nx@19.8.4/node_modules/nx/src/project-graph/plugins/utils.js:47:33
|
|
44
|
+
at Array.map (<anonymous>)
|
|
45
|
+
at createNodesFromFiles (/Volumes/Home/Documents/TestSpectra/source/node_modules/.pnpm/nx@19.8.4/node_modules/nx/src/project-graph/plugins/utils.js:45:35)
|
|
46
|
+
at LoadedNxPlugin.createNodes (/Volumes/Home/Documents/TestSpectra/source/node_modules/.pnpm/nx@19.8.4/node_modules/nx/src/project-graph/plugins/internal-api.js:27:76)
|
|
47
|
+
at LoadedNxPlugin.createNodes.<computed> (/Volumes/Home/Documents/TestSpectra/source/node_modules/.pnpm/nx@19.8.4/node_modules/nx/src/project-graph/plugins/internal-api.js:44:34)
|
|
48
|
+
[NX Daemon Server] - 2026-09-10T02:42:46.830Z - Time taken for 'total execution time for createProjectGraph()' 3.836250000000007ms
|
|
49
|
+
[NX Daemon Server] - 2026-09-10T02:42:46.830Z - Done responding to the client null
|
|
50
|
+
[NX Daemon Server] - 2026-09-10T02:42:46.830Z - Handled REQUEST_PROJECT_GRAPH. Handling time: 158. Response time: 0.
|
|
51
|
+
[NX Daemon Server] - 2026-09-10T02:42:46.833Z - Closed a connection. Number of open connections: 0
|
|
52
|
+
[NX Daemon Server] - 2026-09-10T02:43:41.011Z - [WATCHER]: Processing file changes in outputs
|
|
53
|
+
[NX Daemon Server] - 2026-09-10T02:43:41.012Z - [WATCHER]: Stopping the watcher for /Volumes/Home/Documents/TestSpectra/source/cli/templates/nx (sources)
|
|
54
|
+
[NX Daemon Server] - 2026-09-10T02:43:41.012Z - [WATCHER]: Stopping the watcher for /Volumes/Home/Documents/TestSpectra/source/cli/templates/nx (outputs)
|
|
55
|
+
[NX Daemon Server] - 2026-09-10T02:43:41.012Z - Server stopped because: "LOCK_FILES_CHANGED"
|
|
56
|
+
[NX Daemon Server] - 2026-09-10T07:06:59.991Z - Started listening on: /private/var/folders/hw/dvsryrl10t59sqh3rht8j_pr0000gn/T/091eddd6eaf287d577f0/d.sock
|
|
57
|
+
[NX Daemon Server] - 2026-09-10T07:06:59.992Z - [WATCHER]: Subscribed to changes within: /Volumes/Home/Documents/TestSpectra/source/cli/templates/nx (native)
|
|
58
|
+
[NX Daemon Server] - 2026-09-10T07:06:59.997Z - Established a connection. Number of open connections: 1
|
|
59
|
+
[NX Daemon Server] - 2026-09-10T07:06:59.998Z - Established a connection. Number of open connections: 2
|
|
60
|
+
[NX Daemon Server] - 2026-09-10T07:06:59.998Z - Closed a connection. Number of open connections: 1
|
|
61
|
+
[NX Daemon Server] - 2026-09-10T07:06:59.999Z - [REQUEST]: Client Request for Project Graph Received
|
|
62
|
+
[NX Daemon Server] - 2026-09-10T07:07:00.053Z - [WATCHER]: Processing file changes in outputs
|
|
63
|
+
[NX Daemon Server] - 2026-09-10T07:07:00.132Z - [REQUEST]: Updated workspace context based on watched changes, recomputing project graph...
|
|
64
|
+
[NX Daemon Server] - 2026-09-10T07:07:00.132Z - [REQUEST]:
|
|
65
|
+
[NX Daemon Server] - 2026-09-10T07:07:00.132Z - [REQUEST]:
|
|
66
|
+
[NX Daemon Server] - 2026-09-10T07:07:00.136Z - Time taken for 'loadNxPlugins' 132.789375ms
|
|
67
|
+
[NX Daemon Server] - 2026-09-10T07:07:00.159Z - Time taken for 'build-project-configs' 18.440375000000017ms
|
|
68
|
+
[NX Daemon Server] - 2026-09-10T07:07:00.162Z - [SYNC]: collect registered sync generators
|
|
69
|
+
[NX Daemon Server] - 2026-09-10T07:07:00.162Z - [REQUEST]: Responding to the client. project-graph
|
|
70
|
+
[NX Daemon Server] - 2026-09-10T07:07:00.162Z - Done responding to the client project-graph
|
|
71
|
+
[NX Daemon Server] - 2026-09-10T07:07:00.162Z - Handled REQUEST_PROJECT_GRAPH. Handling time: 163. Response time: 0.
|
|
72
|
+
[NX Daemon Server] - 2026-09-10T07:07:00.162Z - Time taken for 'total for creating and serializing project graph' 163.05229199999997ms
|
|
73
|
+
[NX Daemon Server] - 2026-09-10T07:07:00.203Z - [REQUEST]: Responding to the client. handleHashTasks
|
|
74
|
+
[NX Daemon Server] - 2026-09-10T07:07:00.203Z - Done responding to the client handleHashTasks
|
|
75
|
+
[NX Daemon Server] - 2026-09-10T07:07:00.203Z - Handled HASH_TASKS. Handling time: 1. Response time: 0.
|
|
76
|
+
[NX Daemon Server] - 2026-09-10T07:07:00.208Z - Closed a connection. Number of open connections: 0
|
|
77
|
+
[NX Daemon Server] - 2026-09-10T07:07:55.071Z - [WATCHER]: Processing file changes in outputs
|
|
78
|
+
[NX Daemon Server] - 2026-09-10T07:07:55.079Z - [WATCHER]: tsconfig.json was modified
|
|
79
|
+
[NX Daemon Server] - 2026-09-10T07:07:55.181Z - [REQUEST]: Updated workspace context based on watched changes, recomputing project graph...
|
|
80
|
+
[NX Daemon Server] - 2026-09-10T07:07:55.181Z - [REQUEST]: tsconfig.json
|
|
81
|
+
[NX Daemon Server] - 2026-09-10T07:07:55.182Z - [REQUEST]:
|
|
82
|
+
[NX Daemon Server] - 2026-09-10T07:07:55.183Z - Time taken for 'hash changed files from watcher' 0.15591600000334438ms
|
|
83
|
+
[NX Daemon Server] - 2026-09-10T07:07:55.187Z - Time taken for 'build-project-configs' 3.2793339999989257ms
|
|
84
|
+
[NX Daemon Server] - 2026-09-10T07:07:55.190Z - [SYNC]: collect registered sync generators
|
|
85
|
+
[NX Daemon Server] - 2026-09-10T07:07:55.190Z - [SYNC]: project graph hash is the same, not collecting task sync generators
|
|
86
|
+
[NX Daemon Server] - 2026-09-10T07:07:55.190Z - [SYNC]: nx.json hash is the same, not collecting global sync generators
|
|
87
|
+
[NX Daemon Server] - 2026-09-10T07:07:55.190Z - Time taken for 'total execution time for createProjectGraph()' 2.122083999995084ms
|
|
88
|
+
[NX Daemon Server] - 2026-09-10T07:07:57.377Z - [WATCHER]: Processing file changes in outputs
|
|
89
|
+
[NX Daemon Server] - 2026-09-10T07:07:57.382Z - [WATCHER]: tsconfig.json was modified
|
|
90
|
+
[NX Daemon Server] - 2026-09-10T07:07:57.583Z - [REQUEST]: Updated workspace context based on watched changes, recomputing project graph...
|
|
91
|
+
[NX Daemon Server] - 2026-09-10T07:07:57.583Z - [REQUEST]: tsconfig.json
|
|
92
|
+
[NX Daemon Server] - 2026-09-10T07:07:57.583Z - [REQUEST]:
|
|
93
|
+
[NX Daemon Server] - 2026-09-10T07:07:57.584Z - Time taken for 'hash changed files from watcher' 0.17925000000104774ms
|
|
94
|
+
[NX Daemon Server] - 2026-09-10T07:07:57.587Z - Time taken for 'build-project-configs' 2.9307499999995343ms
|
|
95
|
+
[NX Daemon Server] - 2026-09-10T07:07:57.589Z - [SYNC]: collect registered sync generators
|
|
96
|
+
[NX Daemon Server] - 2026-09-10T07:07:57.589Z - [SYNC]: project graph hash is the same, not collecting task sync generators
|
|
97
|
+
[NX Daemon Server] - 2026-09-10T07:07:57.589Z - [SYNC]: nx.json hash is the same, not collecting global sync generators
|
|
98
|
+
[NX Daemon Server] - 2026-09-10T07:07:57.589Z - Time taken for 'total execution time for createProjectGraph()' 1.1716249999954016ms
|
|
99
|
+
[NX Daemon Server] - 2026-09-10T07:13:48.609Z - [WATCHER]: Processing file changes in outputs
|
|
100
|
+
[NX Daemon Server] - 2026-09-10T07:13:48.612Z - [WATCHER]: tsconfig.json was modified
|
|
101
|
+
[NX Daemon Server] - 2026-09-10T07:13:49.014Z - [REQUEST]: Updated workspace context based on watched changes, recomputing project graph...
|
|
102
|
+
[NX Daemon Server] - 2026-09-10T07:13:49.014Z - [REQUEST]: tsconfig.json
|
|
103
|
+
[NX Daemon Server] - 2026-09-10T07:13:49.014Z - [REQUEST]:
|
|
104
|
+
[NX Daemon Server] - 2026-09-10T07:13:49.017Z - Time taken for 'hash changed files from watcher' 0.21850000001722947ms
|
|
105
|
+
[NX Daemon Server] - 2026-09-10T07:13:49.020Z - Time taken for 'build-project-configs' 4.080917000013869ms
|
|
106
|
+
[NX Daemon Server] - 2026-09-10T07:13:49.024Z - [SYNC]: collect registered sync generators
|
|
107
|
+
[NX Daemon Server] - 2026-09-10T07:13:49.024Z - [SYNC]: project graph hash is the same, not collecting task sync generators
|
|
108
|
+
[NX Daemon Server] - 2026-09-10T07:13:49.024Z - [SYNC]: nx.json hash is the same, not collecting global sync generators
|
|
109
|
+
[NX Daemon Server] - 2026-09-10T07:13:49.024Z - Time taken for 'total execution time for createProjectGraph()' 1.6456660000258125ms
|
|
110
|
+
[NX Daemon Server] - 2026-09-10T07:13:50.820Z - [WATCHER]: Processing file changes in outputs
|
|
111
|
+
[NX Daemon Server] - 2026-09-10T07:13:50.826Z - [WATCHER]: tsconfig.json was modified
|
|
112
|
+
[NX Daemon Server] - 2026-09-10T07:13:51.627Z - [REQUEST]: Updated workspace context based on watched changes, recomputing project graph...
|
|
113
|
+
[NX Daemon Server] - 2026-09-10T07:13:51.627Z - [REQUEST]: tsconfig.json
|
|
114
|
+
[NX Daemon Server] - 2026-09-10T07:13:51.627Z - [REQUEST]:
|
|
115
|
+
[NX Daemon Server] - 2026-09-10T07:13:51.629Z - Time taken for 'hash changed files from watcher' 0.18895900005009025ms
|
|
116
|
+
[NX Daemon Server] - 2026-09-10T07:13:51.631Z - Time taken for 'build-project-configs' 1.9125829999684356ms
|
|
117
|
+
[NX Daemon Server] - 2026-09-10T07:13:51.632Z - [SYNC]: collect registered sync generators
|
|
118
|
+
[NX Daemon Server] - 2026-09-10T07:13:51.632Z - [SYNC]: project graph hash is the same, not collecting task sync generators
|
|
119
|
+
[NX Daemon Server] - 2026-09-10T07:13:51.632Z - [SYNC]: nx.json hash is the same, not collecting global sync generators
|
|
120
|
+
[NX Daemon Server] - 2026-09-10T07:13:51.632Z - Time taken for 'total execution time for createProjectGraph()' 1.2112079999642447ms
|
|
121
|
+
[NX Daemon Server] - 2026-09-10T07:20:12.983Z - [WATCHER]: 31 file(s) created or restored, 0 file(s) modified, 0 file(s) deleted
|
|
122
|
+
[NX Daemon Server] - 2026-09-10T07:20:12.993Z - [WATCHER]: Processing file changes in outputs
|
|
123
|
+
[NX Daemon Server] - 2026-09-10T07:20:13.111Z - [REQUEST]: Updated workspace context based on watched changes, recomputing project graph...
|
|
124
|
+
[NX Daemon Server] - 2026-09-10T07:20:13.111Z - [REQUEST]: packages/matchers/e2e/specs/ApiInterception/TC-0009-post-mocking/mobile.test.ts,shared/testing/page-objects/NavigationPage/web.ts,shared/testing/page-objects/PlaygroundPage/mobile.ts,packages/matchers/e2e/specs/BrowserContext/TC-0007-title-and-navigation/mobile.test.ts,shared/testing/support/steps/verifyPlaygroundState/mobile.step.ts,packages/matchers/e2e/specs/ElementMatchers/TC-0004-states-and-attributes/web.test.ts,shared/testing/support/actions/fillCredentials/web.action.ts,packages/matchers/e2e/specs/ApiInterception/TC-0008-fetch-mocking/web.test.ts,shared/testing/page-objects/PlaygroundPage/web.ts,shared/testing/page-objects/NavigationPage/mobile.ts,packages/matchers/e2e/specs/ApiInterception/TC-0009-post-mocking/web.test.ts,packages/matchers/e2e/specs/ApiInterception/TC-0008-fetch-mocking/mobile.test.ts,packages/matchers/e2e/specs/ContentMatchers/TC-0006-collections-and-empty/mobile.test.ts,packages/matchers/e2e/specs/ContentMatchers/TC-0005-text-and-values/web.test.ts,shared/testing/support/steps/verifyPlaygroundState/web.step.ts,packages/matchers/e2e/specs/ElementMatchers/TC-0004-states-and-attributes/mobile.test.ts,packages/playground/e2e/specs/Playground/TC-0001-form-controls/mobile.test.ts,shared/testing/support/actions/fillCredentials/mobile.action.ts,spectra.config.ts,packages/matchers/e2e/specs/ContentMatchers/TC-0005-text-and-values/mobile.test.ts,packages/playground/e2e/specs/Playground/TC-0002-toggle-elements/web.test.ts,packages/matchers/e2e/specs/BrowserContext/TC-0007-title-and-navigation/web.test.ts,shared/testing/support/steps/togglePlaygroundStates/web.step.ts,packages/playground/e2e/specs/Playground/TC-0002-toggle-elements/mobile.test.ts,packages/matchers/e2e/specs/ContentMatchers/TC-0006-collections-and-empty/web.test.ts,packages/matchers/e2e/specs/ElementMatchers/TC-0003-visibility-and-dom/mobile.test.ts,packages/playground/e2e/specs/Playground/TC-0001-form-controls/web.test.ts,shared/testing/page-objects/MatchersPage/mobile.ts,shared/testing/page-objects/MatchersPage/web.ts,shared/testing/support/steps/togglePlaygroundStates/mobile.step.ts,packages/matchers/e2e/specs/ElementMatchers/TC-0003-visibility-and-dom/web.test.ts
|
|
125
|
+
[NX Daemon Server] - 2026-09-10T07:20:13.112Z - [REQUEST]:
|
|
126
|
+
[NX Daemon Server] - 2026-09-10T07:20:13.120Z - Time taken for 'hash changed files from watcher' 16.316333000082523ms
|
|
127
|
+
[NX Daemon Server] - 2026-09-10T07:20:13.128Z - Time taken for 'build-project-configs' 8.424375000060536ms
|
|
128
|
+
[NX Daemon Server] - 2026-09-10T07:20:13.134Z - [SYNC]: collect registered sync generators
|
|
129
|
+
[NX Daemon Server] - 2026-09-10T07:20:13.134Z - [SYNC]: project graph hash is the same, not collecting task sync generators
|
|
130
|
+
[NX Daemon Server] - 2026-09-10T07:20:13.134Z - [SYNC]: nx.json hash is the same, not collecting global sync generators
|
|
131
|
+
[NX Daemon Server] - 2026-09-10T07:20:13.134Z - Time taken for 'total execution time for createProjectGraph()' 5.674666999955662ms
|
|
132
|
+
[NX Daemon Server] - 2026-09-10T07:40:15.411Z - [WATCHER]: Processing file changes in outputs
|
|
133
|
+
[NX Daemon Server] - 2026-09-10T07:40:15.413Z - [WATCHER]: tsconfig.json was modified
|
|
134
|
+
[NX Daemon Server] - 2026-09-10T07:40:15.615Z - [REQUEST]: Updated workspace context based on watched changes, recomputing project graph...
|
|
135
|
+
[NX Daemon Server] - 2026-09-10T07:40:15.615Z - [REQUEST]: tsconfig.json
|
|
136
|
+
[NX Daemon Server] - 2026-09-10T07:40:15.615Z - [REQUEST]:
|
|
137
|
+
[NX Daemon Server] - 2026-09-10T07:40:15.618Z - Time taken for 'hash changed files from watcher' 1.2455830001272261ms
|
|
138
|
+
[NX Daemon Server] - 2026-09-10T07:40:15.622Z - Time taken for 'build-project-configs' 3.6960839999374ms
|
|
139
|
+
[NX Daemon Server] - 2026-09-10T07:40:15.624Z - [SYNC]: collect registered sync generators
|
|
140
|
+
[NX Daemon Server] - 2026-09-10T07:40:15.624Z - [SYNC]: project graph hash is the same, not collecting task sync generators
|
|
141
|
+
[NX Daemon Server] - 2026-09-10T07:40:15.624Z - [SYNC]: nx.json hash is the same, not collecting global sync generators
|
|
142
|
+
[NX Daemon Server] - 2026-09-10T07:40:15.624Z - Time taken for 'total execution time for createProjectGraph()' 0.9602909998502582ms
|
|
143
|
+
[NX Daemon Server] - 2026-09-10T07:40:17.481Z - [WATCHER]: Processing file changes in outputs
|
|
144
|
+
[NX Daemon Server] - 2026-09-10T07:40:17.487Z - [WATCHER]: tsconfig.json was modified
|
|
145
|
+
[NX Daemon Server] - 2026-09-10T07:40:17.888Z - [REQUEST]: Updated workspace context based on watched changes, recomputing project graph...
|
|
146
|
+
[NX Daemon Server] - 2026-09-10T07:40:17.888Z - [REQUEST]: tsconfig.json
|
|
147
|
+
[NX Daemon Server] - 2026-09-10T07:40:17.888Z - [REQUEST]:
|
|
148
|
+
[NX Daemon Server] - 2026-09-10T07:40:17.890Z - Time taken for 'hash changed files from watcher' 0.16204200009815395ms
|
|
149
|
+
[NX Daemon Server] - 2026-09-10T07:40:17.892Z - Time taken for 'build-project-configs' 1.915290999924764ms
|
|
150
|
+
[NX Daemon Server] - 2026-09-10T07:40:17.894Z - [SYNC]: collect registered sync generators
|
|
151
|
+
[NX Daemon Server] - 2026-09-10T07:40:17.894Z - [SYNC]: project graph hash is the same, not collecting task sync generators
|
|
152
|
+
[NX Daemon Server] - 2026-09-10T07:40:17.894Z - [SYNC]: nx.json hash is the same, not collecting global sync generators
|
|
153
|
+
[NX Daemon Server] - 2026-09-10T07:40:17.894Z - Time taken for 'total execution time for createProjectGraph()' 1.4514999999664724ms
|
|
154
|
+
[NX Daemon Server] - 2026-09-10T07:40:18.404Z - [WATCHER]: Processing file changes in outputs
|
|
155
|
+
[NX Daemon Server] - 2026-09-10T07:40:18.478Z - [WATCHER]: Processing file changes in outputs
|
|
156
|
+
[NX Daemon Server] - 2026-09-10T07:40:18.542Z - [WATCHER]: Processing file changes in outputs
|
|
157
|
+
[NX Daemon Server] - 2026-09-10T07:40:18.605Z - [WATCHER]: Processing file changes in outputs
|
|
158
|
+
[NX Daemon Server] - 2026-09-10T07:40:18.726Z - [WATCHER]: Processing file changes in outputs
|
|
159
|
+
[NX Daemon Server] - 2026-09-10T07:40:18.798Z - [WATCHER]: Processing file changes in outputs
|
|
160
|
+
[NX Daemon Server] - 2026-09-10T07:40:18.867Z - [WATCHER]: Processing file changes in outputs
|
|
161
|
+
[NX Daemon Server] - 2026-09-10T07:40:18.928Z - [WATCHER]: Processing file changes in outputs
|
|
162
|
+
[NX Daemon Server] - 2026-09-10T07:40:19.037Z - [WATCHER]: Processing file changes in outputs
|
|
163
|
+
[NX Daemon Server] - 2026-09-10T07:40:19.108Z - [WATCHER]: Processing file changes in outputs
|
|
164
|
+
[NX Daemon Server] - 2026-09-10T07:40:19.175Z - [WATCHER]: Processing file changes in outputs
|
|
165
|
+
[NX Daemon Server] - 2026-09-10T07:40:19.238Z - [WATCHER]: Processing file changes in outputs
|
|
166
|
+
[NX Daemon Server] - 2026-09-10T10:40:17.603Z - [WATCHER]: Stopping the watcher for /Volumes/Home/Documents/TestSpectra/source/cli/templates/nx (sources)
|
|
167
|
+
[NX Daemon Server] - 2026-09-10T10:40:17.609Z - [WATCHER]: Stopping the watcher for /Volumes/Home/Documents/TestSpectra/source/cli/templates/nx (outputs)
|
|
168
|
+
[NX Daemon Server] - 2026-09-10T10:40:17.618Z - Server stopped because: "10800000ms of inactivity"
|
package/templates/nx/CLAUDE.md
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
## Commands
|
|
4
4
|
- Run all Web tests: `pnpm spectra run -t web`
|
|
5
|
-
- Run specific spec: `pnpm spectra run "specs/Playground/TC-0001-form-controls/web.test.ts" -t web`
|
|
5
|
+
- Run specific spec: `pnpm spectra run "packages/playground/e2e/specs/Playground/TC-0001-form-controls/web.test.ts" -t web`
|
|
6
6
|
- Run Nx monorepo E2E targets: `pnpm nx run-many -t e2e`
|
|
7
7
|
- Run Mobile tests: `pnpm spectra run --target android` or `pnpm spectra run --target ios`
|
|
8
|
-
- Type checking: `pnpm type-check` (or `tsc -b
|
|
8
|
+
- Type checking: `pnpm type-check` (or `tsc -b`)
|
|
9
9
|
- Preflight doctor: `pnpm spectra doctor`
|
|
10
10
|
- List devices: `pnpm spectra devices`
|
|
@@ -4,14 +4,16 @@
|
|
|
4
4
|
"private": true,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
|
+
"spectra": "spectra",
|
|
7
8
|
"e2e": "nx run-many -t e2e",
|
|
8
9
|
"e2e:affected": "nx affected -t e2e",
|
|
9
|
-
"type-check": "tsc -b
|
|
10
|
-
"build": "nx run-many -t build"
|
|
10
|
+
"type-check": "tsc -b",
|
|
11
|
+
"build": "nx run-many -t build",
|
|
12
|
+
"postinstall": "spectra sync-types"
|
|
11
13
|
},
|
|
12
14
|
"devDependencies": {
|
|
13
|
-
"@testspectra/cli": "
|
|
14
|
-
"@testspectra/matchers": "
|
|
15
|
+
"@testspectra/cli": "link:../..",
|
|
16
|
+
"@testspectra/matchers": "link:../../../tools/matchers",
|
|
15
17
|
"@types/node": "^20.14.0",
|
|
16
18
|
"@wdio/cli": "^9.2.8",
|
|
17
19
|
"@wdio/local-runner": "^9.2.8",
|
|
@@ -23,4 +25,4 @@
|
|
|
23
25
|
"typescript": "^5.4.5",
|
|
24
26
|
"webdriverio": "^9.2.8"
|
|
25
27
|
}
|
|
26
|
-
}
|
|
28
|
+
}
|
package/templates/nx/packages/matchers/e2e/specs/ApiInterception/TC-0008-fetch-mocking/spec.md
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: TC-0008-fetch-mocking
|
|
3
|
+
title: Mock and assert GET API requests using browser.intercept
|
|
4
|
+
priority: High
|
|
5
|
+
caseType: Positive
|
|
6
|
+
status: ready-for-automation
|
|
7
|
+
coverage:
|
|
8
|
+
web: automated
|
|
9
|
+
mobile: automated
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Mock and assert GET API requests using browser.intercept
|
package/templates/nx/packages/matchers/e2e/specs/ApiInterception/TC-0008-fetch-mocking/web.test.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
it("should mock GET API response using browser.intercept and verify rendered items", async () => {
|
|
2
|
+
// Navigate to API Fetch section
|
|
3
|
+
await MatchersPage.open("api-fetch");
|
|
4
|
+
|
|
5
|
+
// Setup API interception with Fixture data
|
|
6
|
+
const mock = await browser.intercept(
|
|
7
|
+
"/api/posts",
|
|
8
|
+
"GET",
|
|
9
|
+
Fixture.apiData.mockPosts
|
|
10
|
+
);
|
|
11
|
+
|
|
12
|
+
// Trigger fetch button
|
|
13
|
+
await MatchersPage.fetchApiButton.click();
|
|
14
|
+
|
|
15
|
+
// Assert status and mocked elements
|
|
16
|
+
await MatchersPage.fetchStatusBadge.shouldHaveText("200 OK");
|
|
17
|
+
await MatchersPage.fetchedItems.shouldHaveLength(Fixture.apiData.mockPosts.length);
|
|
18
|
+
await MatchersPage.fetchedItems.first().shouldContainText(Fixture.apiData.mockPosts[0].title);
|
|
19
|
+
|
|
20
|
+
// Dynamically update fixture response
|
|
21
|
+
await mock.respondWith([
|
|
22
|
+
{ id: 99, title: "Dynamic Updated Mock Title", body: "Updated on the fly" }
|
|
23
|
+
]);
|
|
24
|
+
await MatchersPage.fetchApiButton.click();
|
|
25
|
+
await MatchersPage.fetchedItems.shouldHaveLength(1);
|
|
26
|
+
await MatchersPage.fetchedItems.first().shouldContainText("Dynamic Updated Mock Title");
|
|
27
|
+
});
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: TC-0009-post-mocking
|
|
3
|
+
title: Mock and assert POST API requests using browser.intercept
|
|
4
|
+
priority: High
|
|
5
|
+
caseType: Positive
|
|
6
|
+
status: ready-for-automation
|
|
7
|
+
coverage:
|
|
8
|
+
web: automated
|
|
9
|
+
mobile: automated
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Mock and assert POST API requests using browser.intercept
|
package/templates/nx/packages/matchers/e2e/specs/ApiInterception/TC-0009-post-mocking/web.test.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
it("should mock POST API submission using browser.intercept and verify created response", async () => {
|
|
2
|
+
// Navigate to API POST section
|
|
3
|
+
await MatchersPage.open("api-post");
|
|
4
|
+
|
|
5
|
+
// Setup POST API interception with status 201
|
|
6
|
+
await browser.intercept(
|
|
7
|
+
"/api/posts",
|
|
8
|
+
"POST",
|
|
9
|
+
Fixture.apiData.mockPostResponse,
|
|
10
|
+
{ statusCode: 201 }
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
// Fill in form fields from Fixture
|
|
14
|
+
await MatchersPage.postTitleInput.type(Fixture.apiData.mockNewPost.title);
|
|
15
|
+
await MatchersPage.postBodyInput.type(Fixture.apiData.mockNewPost.body);
|
|
16
|
+
|
|
17
|
+
// Submit POST form
|
|
18
|
+
await MatchersPage.submitPostButton.click();
|
|
19
|
+
|
|
20
|
+
// Assert response elements and status
|
|
21
|
+
await MatchersPage.postStatusBadge.shouldHaveText("201 Created");
|
|
22
|
+
await MatchersPage.postSuccessBanner.shouldBeVisible();
|
|
23
|
+
await MatchersPage.postResponseJson.shouldContainText(Fixture.apiData.mockNewPost.title);
|
|
24
|
+
});
|
|
@@ -1,5 +1,19 @@
|
|
|
1
|
-
it("should verify browser page title and navigation
|
|
1
|
+
it("should verify browser page title, URL, diagnostics, and navigation on Web", async () => {
|
|
2
2
|
await MatchersPage.open();
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
|
|
4
|
+
// Browser title assertions
|
|
5
|
+
await Spectra.browser.shouldHaveTitle("TestSpectra — Matchers API Reference");
|
|
6
|
+
await Spectra.browser.shouldContainTitle("TestSpectra");
|
|
7
|
+
|
|
8
|
+
// Browser URL assertions
|
|
9
|
+
const currentUrl = await browser.getUrl();
|
|
10
|
+
await Spectra.browser.shouldHaveUrl(currentUrl);
|
|
11
|
+
await Spectra.browser.shouldContainUrl("localhost:5173");
|
|
12
|
+
|
|
13
|
+
// Page lifecycle and console error diagnostics
|
|
14
|
+
await Spectra.browser.shouldBeLoaded();
|
|
15
|
+
await Spectra.browser.shouldHaveNoConsoleErrors();
|
|
16
|
+
|
|
17
|
+
// Navigation sidebar collection verification
|
|
18
|
+
await NavigationPage.sidebarLinks.shouldHaveLengthGreaterThan(0);
|
|
5
19
|
});
|
package/templates/nx/packages/matchers/e2e/specs/ContentMatchers/TC-0005-text-and-values/web.test.ts
CHANGED
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
it("should verify text and value matchers on Web", async () => {
|
|
2
2
|
await MatchersPage.open("text");
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
await MatchersPage.
|
|
6
|
-
await MatchersPage.
|
|
3
|
+
|
|
4
|
+
// Text assertions (positive and negative)
|
|
5
|
+
await MatchersPage.exactText.shouldHaveText(Fixture.playgroundData.welcomeText);
|
|
6
|
+
await MatchersPage.exactText.shouldNotHaveText("Unexpected Text");
|
|
7
|
+
|
|
8
|
+
await MatchersPage.partialText.shouldContainText("Welcome");
|
|
9
|
+
await MatchersPage.partialText.shouldNotContainText("Goodbye");
|
|
10
|
+
|
|
11
|
+
// Value assertions (positive and negative)
|
|
12
|
+
await MatchersPage.emailInput.shouldHaveValue(Fixture.playgroundData.defaultEmail);
|
|
13
|
+
await MatchersPage.emailInput.shouldNotHaveValue("wrong.user@testspectra.dev");
|
|
14
|
+
|
|
15
|
+
await MatchersPage.tokenInput.shouldContainValue("JWT_");
|
|
16
|
+
await MatchersPage.tokenInput.shouldNotContainValue("EXPIRED_SESSION");
|
|
7
17
|
});
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
it("should verify collection lengths and empty lists on Web", async () => {
|
|
2
2
|
await MatchersPage.open("length");
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
await MatchersPage.
|
|
3
|
+
|
|
4
|
+
// Receiver assertion methods
|
|
5
|
+
await MatchersPage.productCards.shouldHaveLength(4);
|
|
6
|
+
await MatchersPage.productCards.shouldNotHaveLength(0);
|
|
7
|
+
await MatchersPage.productCards.shouldHaveLengthGreaterThan(0);
|
|
8
|
+
await MatchersPage.productCards.shouldHaveLengthLessThan(10);
|
|
9
|
+
await MatchersPage.emptyList.shouldBeEmpty();
|
|
10
|
+
await MatchersPage.productCards.shouldNotBeEmpty();
|
|
6
11
|
});
|
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
it("should verify
|
|
1
|
+
it("should verify visibility and DOM existence matchers on Web", async () => {
|
|
2
2
|
await MatchersPage.open("visibility");
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
|
|
4
|
+
// Element visibility (positive and negative)
|
|
5
|
+
await MatchersPage.visibleElement.shouldBeVisible();
|
|
6
|
+
await MatchersPage.hiddenElement.shouldNotBeVisible();
|
|
7
|
+
|
|
8
|
+
// DOM existence (positive and negative)
|
|
9
|
+
await MatchersPage.existingElement.shouldExist();
|
|
10
|
+
await Spectra.get("#demo-non-existent-el").shouldNotExist();
|
|
5
11
|
});
|
|
@@ -1,8 +1,29 @@
|
|
|
1
|
-
it("should verify
|
|
1
|
+
it("should verify interactivity states, classes, attributes, and CSS styling on Web", async () => {
|
|
2
2
|
await MatchersPage.open("state");
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
await MatchersPage.
|
|
6
|
-
await MatchersPage.
|
|
7
|
-
|
|
3
|
+
|
|
4
|
+
// Interactivity & state assertions
|
|
5
|
+
await MatchersPage.submitButton.shouldBeEnabled();
|
|
6
|
+
await MatchersPage.submitButton.shouldBeClickable();
|
|
7
|
+
|
|
8
|
+
await MatchersPage.disabledButton.shouldBeDisabled();
|
|
9
|
+
await MatchersPage.disabledButton.shouldNotBeClickable();
|
|
10
|
+
|
|
11
|
+
// Checked states
|
|
12
|
+
await MatchersPage.checkbox.shouldNotBeChecked();
|
|
13
|
+
await MatchersPage.radio.shouldBeChecked();
|
|
14
|
+
|
|
15
|
+
// Focus states
|
|
16
|
+
await MatchersPage.focusInput.shouldNotBeFocused();
|
|
17
|
+
await MatchersPage.focusInput.click();
|
|
18
|
+
await MatchersPage.focusInput.shouldBeFocused();
|
|
19
|
+
|
|
20
|
+
// Class, Attribute, and CSS assertions
|
|
21
|
+
await MatchersPage.activeTab.shouldHaveClass("is-active");
|
|
22
|
+
await MatchersPage.activeTab.shouldNotHaveClass("is-hidden");
|
|
23
|
+
|
|
24
|
+
await MatchersPage.navLink.shouldHaveAttribute("href", Fixture.playgroundData.dashboardHref);
|
|
25
|
+
await MatchersPage.navLink.shouldNotHaveAttribute("disabled");
|
|
26
|
+
|
|
27
|
+
await MatchersPage.styledElement.shouldHaveCss("color", "rgba(239,68,68,1)");
|
|
28
|
+
await MatchersPage.styledElement.shouldNotHaveCss("color", "rgba(0,0,255,1)");
|
|
8
29
|
});
|
package/templates/nx/packages/playground/e2e/specs/Playground/TC-0001-form-controls/web.test.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
it("should verify live playground form inputs and default states (Web)", async () => {
|
|
2
2
|
await Step.verifyPlaygroundState();
|
|
3
|
-
await PlaygroundPage.emailInput.
|
|
4
|
-
await PlaygroundPage.tokenInput.
|
|
5
|
-
await PlaygroundPage.exactText.
|
|
3
|
+
await PlaygroundPage.emailInput.shouldHaveValue(Fixture.playgroundData.defaultEmail);
|
|
4
|
+
await PlaygroundPage.tokenInput.shouldContainValue("JWT_");
|
|
5
|
+
await PlaygroundPage.exactText.shouldHaveText(Fixture.playgroundData.welcomeText);
|
|
6
6
|
});
|
package/templates/nx/packages/playground/e2e/specs/Playground/TC-0002-toggle-elements/web.test.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
it("should update input values and verify updated state (Web)", async () => {
|
|
2
2
|
await PlaygroundPage.open();
|
|
3
3
|
await PlaygroundPage.fillCredentials("qa.expert@testspectra.dev", "JWT_custom_session_token");
|
|
4
|
-
await PlaygroundPage.emailInput.
|
|
5
|
-
await PlaygroundPage.tokenInput.
|
|
4
|
+
await PlaygroundPage.emailInput.shouldHaveValue("qa.expert@testspectra.dev");
|
|
5
|
+
await PlaygroundPage.tokenInput.shouldContainValue("JWT_custom_session_token");
|
|
6
6
|
});
|