testdriverai 7.1.0 → 7.1.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/.env.example +2 -0
- package/.github/workflows/linux-tests.yml +28 -0
- package/agent/index.js +18 -45
- package/agent/interface.js +13 -2
- package/agent/lib/commands.js +1 -1
- package/agent/lib/redraw.js +1 -1
- package/agent/lib/sandbox.js +30 -2
- package/agent/lib/valid-version.js +2 -2
- package/debugger/index.html +1 -1
- package/docs/docs.json +140 -131
- package/docs/v6/getting-started/self-hosting.mdx +3 -2
- package/docs/v7/_drafts/agents.mdx +852 -0
- package/docs/v7/_drafts/auto-cache-key.mdx +167 -0
- package/docs/v7/{guides → _drafts}/caching-selectors.mdx +125 -17
- package/docs/v7/_drafts/dashcam-title-feature.mdx +89 -0
- package/docs/v7/_drafts/error-handling.mdx +501 -0
- package/docs/v7/_drafts/implementation-plan.mdx +994 -0
- package/docs/v7/_drafts/init-command.mdx +95 -0
- package/docs/v7/_drafts/optimal-sdk-design.mdx +1348 -0
- package/docs/v7/_drafts/plugin-migration.mdx +222 -0
- package/docs/v7/_drafts/prompt-cache.mdx +200 -0
- package/docs/{QUICK_START_TEST_RECORDING.md → v7/_drafts/quick-start-test-recording.mdx} +3 -3
- package/docs/v7/_drafts/sdk-logging.mdx +222 -0
- package/docs/v7/_drafts/sdk-migration.mdx +474 -0
- package/docs/v7/_drafts/sdk-v7-complete.mdx +345 -0
- package/docs/v7/{guides → _drafts}/self-hosting.mdx +1 -1
- package/docs/v7/{guides → _drafts}/troubleshooting.mdx +2 -2
- package/docs/v7/{guides → _drafts}/vitest-plugin.mdx +4 -4
- package/docs/v7/api/{ai.mdx → act.mdx} +24 -24
- package/docs/v7/api/client.mdx +1 -1
- package/docs/v7/api/dashcam.mdx +2 -2
- package/docs/v7/api/elements.mdx +143 -41
- package/docs/v7/api/find.mdx +258 -0
- package/docs/v7/api/type.mdx +51 -7
- package/docs/v7/features/ai-native.mdx +427 -0
- package/docs/v7/features/easy-to-write.mdx +351 -0
- package/docs/v7/features/enterprise.mdx +540 -0
- package/docs/v7/features/fast.mdx +424 -0
- package/docs/v7/features/observable.mdx +623 -0
- package/docs/v7/features/powerful.mdx +531 -0
- package/docs/v7/features/scalable.mdx +417 -0
- package/docs/v7/features/stable.mdx +514 -0
- package/docs/v7/getting-started/configuration.mdx +1 -1
- package/docs/v7/getting-started/generating-tests.mdx +525 -0
- package/docs/v7/getting-started/installation.mdx +486 -0
- package/docs/v7/getting-started/quickstart.mdx +51 -5
- package/docs/v7/getting-started/running-and-debugging.mdx +511 -0
- package/docs/v7/getting-started/setting-up-in-ci.mdx +612 -0
- package/docs/v7/getting-started/writing-tests.mdx +535 -0
- package/docs/v7/overview/what-is-testdriver.mdx +398 -0
- package/docs/v7/playwright.mdx +3 -3
- package/docs/v7/presets/chrome.mdx +16 -0
- package/docs/v7/presets/electron.mdx +18 -0
- package/docs/v7/presets/vscode.mdx +19 -0
- package/examples/run-tests-with-recording.sh +70 -0
- package/examples/screenshot-example.js +63 -0
- package/examples/sdk-awesome-logs-demo.js +177 -0
- package/examples/sdk-cache-thresholds.js +96 -0
- package/examples/sdk-element-properties.js +155 -0
- package/examples/sdk-simple-example.js +65 -0
- package/examples/test-recording-example.test.js +166 -0
- package/interfaces/cli/commands/init.js +358 -0
- package/interfaces/vitest-plugin.mjs +214 -10
- package/{src → lib}/core/Dashcam.js +41 -4
- package/{src → lib}/vitest/hooks.mjs +118 -100
- package/lib/vitest/setup.mjs +44 -0
- package/package.json +9 -10
- package/sdk.d.ts +15 -2
- package/sdk.js +72 -17
- package/{self-hosted.yml → setup/aws/self-hosted.yml} +1 -1
- package/{testdriver/acceptance-sdk → test/manual}/test-console-logs.test.mjs +1 -1
- package/test/manual/test-find-api.js +73 -0
- package/test/manual/test-init.sh +54 -0
- package/test/manual/test-prompt-cache.js +96 -0
- package/test/manual/test-provision-auth.mjs +22 -0
- package/test/manual/test-sandbox-render.js +28 -0
- package/test/manual/test-sdk-methods.js +15 -0
- package/test/manual/test-sdk-refactor.js +53 -0
- package/test/manual/test-stack-trace.mjs +57 -0
- package/test/testdriver/assert.test.mjs +41 -0
- package/{testdriver/acceptance-sdk → test/testdriver}/auto-cache-key-demo.test.mjs +1 -1
- package/{testdriver/acceptance-sdk → test/testdriver}/drag-and-drop.test.mjs +1 -1
- package/{testdriver/acceptance-sdk → test/testdriver}/element-not-found.test.mjs +1 -1
- package/{testdriver/acceptance-sdk → test/testdriver}/exec-js.test.mjs +1 -1
- package/{testdriver/acceptance-sdk → test/testdriver}/exec-output.test.mjs +3 -3
- package/{testdriver/acceptance-sdk → test/testdriver}/exec-pwsh.test.mjs +3 -3
- package/{testdriver/acceptance-sdk → test/testdriver}/focus-window.test.mjs +1 -1
- package/{testdriver/acceptance-sdk → test/testdriver}/formatted-logging.test.mjs +1 -1
- package/{testdriver/acceptance-sdk → test/testdriver}/hover-image.test.mjs +1 -1
- package/{testdriver/acceptance-sdk → test/testdriver}/hover-text-with-description.test.mjs +1 -1
- package/{testdriver/acceptance-sdk → test/testdriver}/hover-text.test.mjs +1 -1
- package/{testdriver/acceptance-sdk → test/testdriver}/match-image.test.mjs +1 -1
- package/{testdriver/acceptance-sdk → test/testdriver}/press-keys.test.mjs +1 -1
- package/{testdriver/acceptance-sdk → test/testdriver}/prompt.test.mjs +2 -2
- package/{testdriver/acceptance-sdk → test/testdriver}/scroll-keyboard.test.mjs +1 -1
- package/{testdriver/acceptance-sdk → test/testdriver}/scroll-until-image.test.mjs +1 -1
- package/{testdriver/acceptance-sdk → test/testdriver}/scroll-until-text.test.mjs +1 -1
- package/{testdriver/acceptance-sdk → test/testdriver}/scroll.test.mjs +1 -1
- package/{src/vitest/lifecycle.mjs → test/testdriver/setup/lifecycleHelpers.mjs} +84 -99
- package/test/testdriver/setup/testHelpers.mjs +653 -0
- package/{testdriver/acceptance-sdk → test/testdriver}/type.test.mjs +1 -1
- package/vitest.config.mjs +8 -59
- package/.github/dependabot.yml +0 -11
- package/.github/workflows/acceptance-linux.yml +0 -75
- package/.github/workflows/acceptance-sdk-tests.yml +0 -133
- package/.github/workflows/acceptance-tests.yml +0 -130
- package/.github/workflows/lint.yml +0 -27
- package/.github/workflows/publish-canary.yml +0 -40
- package/.github/workflows/publish-latest.yml +0 -61
- package/.github/workflows/test-install.yml +0 -29
- package/.vscode/extensions.json +0 -3
- package/.vscode/launch.json +0 -22
- package/.vscode/settings.json +0 -14
- package/AGENTS.md +0 -550
- package/CODEOWNERS +0 -2
- package/_testdriver/acceptance/assert.yaml +0 -7
- package/_testdriver/acceptance/dashcam.yaml +0 -9
- package/_testdriver/acceptance/drag-and-drop.yaml +0 -49
- package/_testdriver/acceptance/embed.yaml +0 -9
- package/_testdriver/acceptance/exec-js.yaml +0 -29
- package/_testdriver/acceptance/exec-output.yaml +0 -43
- package/_testdriver/acceptance/exec-shell.yaml +0 -40
- package/_testdriver/acceptance/focus-window.yaml +0 -16
- package/_testdriver/acceptance/hover-image.yaml +0 -18
- package/_testdriver/acceptance/hover-text-with-description.yaml +0 -29
- package/_testdriver/acceptance/hover-text.yaml +0 -14
- package/_testdriver/acceptance/if-else.yaml +0 -31
- package/_testdriver/acceptance/match-image.yaml +0 -15
- package/_testdriver/acceptance/press-keys.yaml +0 -35
- package/_testdriver/acceptance/prompt.yaml +0 -11
- package/_testdriver/acceptance/remember.yaml +0 -27
- package/_testdriver/acceptance/screenshots/cart.png +0 -0
- package/_testdriver/acceptance/scroll-keyboard.yaml +0 -34
- package/_testdriver/acceptance/scroll-until-image.yaml +0 -26
- package/_testdriver/acceptance/scroll-until-text.yaml +0 -20
- package/_testdriver/acceptance/scroll.yaml +0 -33
- package/_testdriver/acceptance/snippets/login.yaml +0 -29
- package/_testdriver/acceptance/snippets/match-cart.yaml +0 -8
- package/_testdriver/acceptance/type.yaml +0 -29
- package/_testdriver/behavior/failure.yaml +0 -7
- package/_testdriver/behavior/hover-text.yaml +0 -13
- package/_testdriver/behavior/lifecycle/postrun.yaml +0 -10
- package/_testdriver/behavior/lifecycle/prerun.yaml +0 -8
- package/_testdriver/behavior/lifecycle/provision.yaml +0 -8
- package/_testdriver/behavior/secrets.yaml +0 -7
- package/_testdriver/edge-cases/dashcam-chrome.yaml +0 -8
- package/_testdriver/edge-cases/exec-pwsh-multiline.yaml +0 -10
- package/_testdriver/edge-cases/js-exception.yaml +0 -8
- package/_testdriver/edge-cases/js-promise.yaml +0 -19
- package/_testdriver/edge-cases/lifecycle/postrun.yaml +0 -10
- package/_testdriver/edge-cases/prompt-in-middle.yaml +0 -23
- package/_testdriver/edge-cases/prompt-nested.yaml +0 -7
- package/_testdriver/edge-cases/success-test.yaml +0 -9
- package/_testdriver/examples/android/example.yaml +0 -12
- package/_testdriver/examples/android/lifecycle/postrun.yaml +0 -11
- package/_testdriver/examples/android/lifecycle/provision.yaml +0 -47
- package/_testdriver/examples/android/readme.md +0 -7
- package/_testdriver/examples/chrome-extension/lifecycle/provision.yaml +0 -74
- package/_testdriver/examples/desktop/lifecycle/prerun.yaml +0 -0
- package/_testdriver/examples/desktop/lifecycle/provision.yaml +0 -64
- package/_testdriver/examples/vscode-extension/lifecycle/provision.yaml +0 -73
- package/_testdriver/examples/web/lifecycle/postrun.yaml +0 -7
- package/_testdriver/examples/web/lifecycle/prerun.yaml +0 -22
- package/_testdriver/lifecycle/postrun.yaml +0 -8
- package/_testdriver/lifecycle/prerun.yaml +0 -15
- package/_testdriver/lifecycle/provision.yaml +0 -25
- package/docs/v7/guides/ci-cd/azure.mdx +0 -587
- package/docs/v7/guides/ci-cd/circleci.mdx +0 -523
- package/docs/v7/guides/ci-cd/github-actions.mdx +0 -457
- package/docs/v7/guides/ci-cd/gitlab.mdx +0 -498
- package/docs/v7/guides/ci-cd/jenkins.mdx +0 -664
- package/docs/v7/guides/ci-cd/travis.mdx +0 -438
- package/scripts/view-test-results.mjs +0 -96
- package/src/vitest/extended.mjs +0 -108
- package/src/vitest/index.mjs +0 -64
- package/src/vitest/utils.mjs +0 -150
- package/styles/.vale-config/2-MDX.ini +0 -5
- package/styles/Microsoft/AMPM.yml +0 -9
- package/styles/Microsoft/Accessibility.yml +0 -30
- package/styles/Microsoft/Acronyms.yml +0 -64
- package/styles/Microsoft/Adverbs.yml +0 -272
- package/styles/Microsoft/Auto.yml +0 -11
- package/styles/Microsoft/Avoid.yml +0 -14
- package/styles/Microsoft/Contractions.yml +0 -50
- package/styles/Microsoft/Dashes.yml +0 -13
- package/styles/Microsoft/DateFormat.yml +0 -8
- package/styles/Microsoft/DateNumbers.yml +0 -40
- package/styles/Microsoft/DateOrder.yml +0 -8
- package/styles/Microsoft/Ellipses.yml +0 -9
- package/styles/Microsoft/FirstPerson.yml +0 -16
- package/styles/Microsoft/Foreign.yml +0 -13
- package/styles/Microsoft/Gender.yml +0 -8
- package/styles/Microsoft/GenderBias.yml +0 -42
- package/styles/Microsoft/GeneralURL.yml +0 -11
- package/styles/Microsoft/HeadingAcronyms.yml +0 -7
- package/styles/Microsoft/HeadingColons.yml +0 -8
- package/styles/Microsoft/HeadingPunctuation.yml +0 -13
- package/styles/Microsoft/Headings.yml +0 -28
- package/styles/Microsoft/Hyphens.yml +0 -14
- package/styles/Microsoft/Negative.yml +0 -13
- package/styles/Microsoft/Ordinal.yml +0 -13
- package/styles/Microsoft/OxfordComma.yml +0 -8
- package/styles/Microsoft/Passive.yml +0 -183
- package/styles/Microsoft/Percentages.yml +0 -7
- package/styles/Microsoft/Plurals.yml +0 -7
- package/styles/Microsoft/Quotes.yml +0 -7
- package/styles/Microsoft/RangeTime.yml +0 -13
- package/styles/Microsoft/Semicolon.yml +0 -8
- package/styles/Microsoft/SentenceLength.yml +0 -6
- package/styles/Microsoft/Spacing.yml +0 -8
- package/styles/Microsoft/Suspended.yml +0 -7
- package/styles/Microsoft/Terms.yml +0 -42
- package/styles/Microsoft/URLFormat.yml +0 -9
- package/styles/Microsoft/Units.yml +0 -16
- package/styles/Microsoft/Vocab.yml +0 -25
- package/styles/Microsoft/We.yml +0 -11
- package/styles/Microsoft/Wordiness.yml +0 -127
- package/styles/Microsoft/meta.json +0 -4
- package/styles/alex/Ablist.yml +0 -274
- package/styles/alex/Condescending.yml +0 -16
- package/styles/alex/Gendered.yml +0 -110
- package/styles/alex/LGBTQ.yml +0 -55
- package/styles/alex/OCD.yml +0 -10
- package/styles/alex/Press.yml +0 -12
- package/styles/alex/ProfanityLikely.yml +0 -1289
- package/styles/alex/ProfanityMaybe.yml +0 -282
- package/styles/alex/ProfanityUnlikely.yml +0 -251
- package/styles/alex/README.md +0 -27
- package/styles/alex/Race.yml +0 -85
- package/styles/alex/Suicide.yml +0 -26
- package/styles/alex/meta.json +0 -4
- package/styles/config/vocabularies/Docs/accept.txt +0 -47
- package/styles/config/vocabularies/Docs/reject.txt +0 -4
- package/styles/proselint/Airlinese.yml +0 -8
- package/styles/proselint/AnimalLabels.yml +0 -48
- package/styles/proselint/Annotations.yml +0 -9
- package/styles/proselint/Apologizing.yml +0 -8
- package/styles/proselint/Archaisms.yml +0 -52
- package/styles/proselint/But.yml +0 -8
- package/styles/proselint/Cliches.yml +0 -782
- package/styles/proselint/CorporateSpeak.yml +0 -30
- package/styles/proselint/Currency.yml +0 -5
- package/styles/proselint/Cursing.yml +0 -15
- package/styles/proselint/DateCase.yml +0 -7
- package/styles/proselint/DateMidnight.yml +0 -7
- package/styles/proselint/DateRedundancy.yml +0 -10
- package/styles/proselint/DateSpacing.yml +0 -7
- package/styles/proselint/DenizenLabels.yml +0 -52
- package/styles/proselint/Diacritical.yml +0 -95
- package/styles/proselint/GenderBias.yml +0 -45
- package/styles/proselint/GroupTerms.yml +0 -39
- package/styles/proselint/Hedging.yml +0 -8
- package/styles/proselint/Hyperbole.yml +0 -6
- package/styles/proselint/Jargon.yml +0 -11
- package/styles/proselint/LGBTOffensive.yml +0 -13
- package/styles/proselint/LGBTTerms.yml +0 -15
- package/styles/proselint/Malapropisms.yml +0 -8
- package/styles/proselint/Needless.yml +0 -358
- package/styles/proselint/Nonwords.yml +0 -38
- package/styles/proselint/Oxymorons.yml +0 -22
- package/styles/proselint/P-Value.yml +0 -6
- package/styles/proselint/RASSyndrome.yml +0 -30
- package/styles/proselint/README.md +0 -12
- package/styles/proselint/Skunked.yml +0 -13
- package/styles/proselint/Spelling.yml +0 -17
- package/styles/proselint/Typography.yml +0 -11
- package/styles/proselint/Uncomparables.yml +0 -50
- package/styles/proselint/Very.yml +0 -6
- package/styles/proselint/meta.json +0 -15
- package/styles/write-good/Cliches.yml +0 -702
- package/styles/write-good/E-Prime.yml +0 -32
- package/styles/write-good/Illusions.yml +0 -11
- package/styles/write-good/Passive.yml +0 -183
- package/styles/write-good/README.md +0 -27
- package/styles/write-good/So.yml +0 -5
- package/styles/write-good/ThereIs.yml +0 -6
- package/styles/write-good/TooWordy.yml +0 -221
- package/styles/write-good/Weasel.yml +0 -29
- package/styles/write-good/meta.json +0 -4
- package/test/dashcam.test.js +0 -137
- package/test/mcp-example-test.yaml +0 -27
- package/test/test_parser.js +0 -47
- package/testdriver/acceptance-sdk/QUICK_REFERENCE.md +0 -61
- package/testdriver/acceptance-sdk/README.md +0 -128
- package/testdriver/acceptance-sdk/TEST_REPORTING.md +0 -245
- package/testdriver/acceptance-sdk/assert.test.mjs +0 -26
- package/testdriver/acceptance-sdk/hooks-example.test.mjs +0 -38
- package/testdriver/acceptance-sdk/presets-example.test.mjs +0 -87
- package/testdriver/acceptance-sdk/setup/testHelpers.mjs +0 -420
- package/testdriver/acceptance-sdk/sully-ai.test.mjs +0 -234
- package/testdriver/acceptance-sdk/type-checking-demo.js +0 -49
- package/vale.ini +0 -18
- package/vitest.config.example.js +0 -19
- package/vitest.config.mjs.bak +0 -44
- /package/docs/{ARCHITECTURE.md → v7/_drafts/architecture.mdx} +0 -0
- /package/docs/{AWESOME_LOGS_QUICK_REF.md → v7/_drafts/awesome-logs-quick-ref.mdx} +0 -0
- /package/docs/v7/{guides → _drafts}/best-practices.mdx +0 -0
- /package/docs/v7/{guides → _drafts}/caching-ai.mdx +0 -0
- /package/docs/v7/{guides → _drafts}/caching.mdx +0 -0
- /package/docs/{MIGRATION.md → v7/_drafts/cli-to-sdk-migration.mdx} +0 -0
- /package/{CONTRIBUTING.md → docs/v7/_drafts/contributing.mdx} +0 -0
- /package/docs/v7/{progressive-apis/CORE.md → _drafts/core.mdx} +0 -0
- /package/docs/v7/{guides → _drafts}/debugging.mdx +0 -0
- /package/docs/v7/{guides → _drafts}/faq.mdx +0 -0
- /package/docs/v7/{progressive-apis/HOOKS.md → _drafts/hooks.mdx} +0 -0
- /package/docs/v7/{guides → _drafts}/migration.mdx +0 -0
- /package/docs/v7/{guides → _drafts}/performance.mdx +0 -0
- /package/docs/{PRESETS.md → v7/_drafts/presets.mdx} +0 -0
- /package/docs/v7/{progressive-apis/PROGRESSIVE_DISCLOSURE.md → _drafts/progressive-disclosure.mdx} +0 -0
- /package/docs/v7/{progressive-apis/PROVISION.md → _drafts/provision.mdx} +0 -0
- /package/docs/{SDK_AWESOME_LOGS.md → v7/_drafts/sdk-awesome-logs.mdx} +0 -0
- /package/docs/{sdk-browser-rendering.md → v7/_drafts/sdk-browser-rendering.mdx} +0 -0
- /package/docs/{TEST_RECORDING.md → v7/_drafts/test-recording.mdx} +0 -0
- /package/docs/v7/{guides → _drafts}/vitest.mdx +0 -0
- /package/docs/v7/{README.md → overview/readme.mdx} +0 -0
- /package/{src → lib}/core/index.d.ts +0 -0
- /package/{src → lib}/core/index.js +0 -0
- /package/{src → lib}/presets/index.mjs +0 -0
- /package/{src → lib}/vitest/hooks.d.ts +0 -0
- /package/{debug-locate-response.js → test/manual/debug-locate-response.js} +0 -0
- /package/{verify-element-api.js → test/manual/verify-element-api.js} +0 -0
- /package/{verify-types.js → test/manual/verify-types.js} +0 -0
- /package/{testdriver/acceptance-sdk → test/testdriver}/chrome-extension.test.mjs +0 -0
- /package/{testdriver/acceptance-sdk → test/testdriver}/setup/globalTeardown.mjs +0 -0
- /package/{testdriver/acceptance-sdk → test/testdriver}/setup/vitestSetup.mjs +0 -0
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
version: 6.0.0
|
|
2
|
-
session: 685c63558f43d1527c84d053
|
|
3
|
-
steps:
|
|
4
|
-
# Start the instance and install APK
|
|
5
|
-
- prompt: Download and Start APK
|
|
6
|
-
commands:
|
|
7
|
-
- command: exec
|
|
8
|
-
lang: pwsh
|
|
9
|
-
code: |
|
|
10
|
-
# Authenticate Gmsaas
|
|
11
|
-
gmsaas auth token ${TD_GENYMOTION_KEY}
|
|
12
|
-
gmsaas config set android-sdk-path C:\Android
|
|
13
|
-
|
|
14
|
-
# Start instance, with name 'td-test'
|
|
15
|
-
$instance=$(gmsaas instances start 3990323a-1e9a-49df-ad87-6947f7fc166e td-test)
|
|
16
|
-
gmsaas instances adbconnect $instance
|
|
17
|
-
|
|
18
|
-
# Save Instance ID and echo value
|
|
19
|
-
Write-Output $instance | Out-File -FilePath C:\instance_id
|
|
20
|
-
Write-Output "Instance ID: $instance"
|
|
21
|
-
|
|
22
|
-
# Get Display Link
|
|
23
|
-
gmsaas instances display -y $instance
|
|
24
|
-
$clipboard = Get-Clipboard
|
|
25
|
-
$escapedUrl = '"' + $clipboard + '"'
|
|
26
|
-
|
|
27
|
-
# Open Chrome to Emulator
|
|
28
|
-
Start-Process 'C:/Program Files/Google/Chrome/Application/chrome.exe' -ArgumentList '--start-maximized',$escapedUrl
|
|
29
|
-
|
|
30
|
-
- command: exec
|
|
31
|
-
lang: pwsh
|
|
32
|
-
code: |
|
|
33
|
-
# Download + install APK via cmd
|
|
34
|
-
$apk_url = "https://v6-demo-assets.s3.us-east-2.amazonaws.com/todo-1-0-0.apk"
|
|
35
|
-
Start-Process cmd.exe -ArgumentList "/c curl -o C:\app.apk $apk_url && adb install C:\app.apk"
|
|
36
|
-
|
|
37
|
-
# Get Package name
|
|
38
|
-
$output = & 'C:\Android\build-tools\36.0.0\aapt.exe' dump badging C:\app.apk
|
|
39
|
-
$package = ($output | Select-String "package: name='([^']+)'" ).Matches.Groups[1].Value
|
|
40
|
-
|
|
41
|
-
# Launch Application via cmd
|
|
42
|
-
Start-Process cmd.exe -ArgumentList "/c adb shell monkey -p $package -c android.intent.category.LAUNCHER 1"
|
|
43
|
-
|
|
44
|
-
# Make Sure Window is open
|
|
45
|
-
- command: wait-for-text
|
|
46
|
-
text: gmsaas
|
|
47
|
-
timeout: 60000
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
# Android Example (Preview)
|
|
2
|
-
|
|
3
|
-
This is a preview of TestDriver mobile support.
|
|
4
|
-
|
|
5
|
-
This example [Genymotion](https://www.genymotion.com/) cloud instance, downloads and installs an APK, uploads it to genymotion, and provides it as input to TestDriver.
|
|
6
|
-
|
|
7
|
-
This example only needs a Genymotion Key. Set it in `TD_GENYMOTION_KEY` within your `.env`.
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
version: 6.0.0
|
|
2
|
-
session: 67f00511acbd9ccac373edf7
|
|
3
|
-
steps:
|
|
4
|
-
- prompt: launch chrome
|
|
5
|
-
commands:
|
|
6
|
-
- command: exec
|
|
7
|
-
lang: pwsh
|
|
8
|
-
code: |
|
|
9
|
-
Write-Host "Cloning Chrome extension samples..."
|
|
10
|
-
$repoUrl = "https://github.com/GoogleChrome/chrome-extensions-samples.git"
|
|
11
|
-
$clonePath = Join-Path $env:TEMP "chrome-extensions-samples"
|
|
12
|
-
if (!(Test-Path $clonePath)) {
|
|
13
|
-
git clone $repoUrl $clonePath
|
|
14
|
-
} else {
|
|
15
|
-
Write-Host "Repo already cloned at $clonePath"
|
|
16
|
-
}
|
|
17
|
-
Write-Host "Repo ready at $clonePath"
|
|
18
|
-
|
|
19
|
-
Write-Host "Initializing new npm project..."
|
|
20
|
-
cd $env:TEMP
|
|
21
|
-
Write-Host "Changed directory to TEMP: $env:TEMP"
|
|
22
|
-
|
|
23
|
-
Write-Host "Running 'npm init -y'..."
|
|
24
|
-
npm init -y
|
|
25
|
-
|
|
26
|
-
Write-Host "Installing dependencies: @puppeteer/browsers and dashcam-chrome..."
|
|
27
|
-
npm install @puppeteer/browsers dashcam-chrome
|
|
28
|
-
|
|
29
|
-
Write-Host "Installing Chromium via '@puppeteer/browsers'..."
|
|
30
|
-
npx @puppeteer/browsers install chrome
|
|
31
|
-
|
|
32
|
-
# Define paths - redefining variables for this script
|
|
33
|
-
$extensionPath = Join-Path (Join-Path $env:TEMP "chrome-extensions-samples") "functional-samples/tutorial.hello-world"
|
|
34
|
-
$profilePath = Join-Path $env:TEMP "chrome-profile-$(Get-Random)"
|
|
35
|
-
$defaultDir = Join-Path $profilePath "Default"
|
|
36
|
-
$prefsPath = Join-Path $defaultDir "Preferences"
|
|
37
|
-
|
|
38
|
-
Write-Host "Extension path (hello-world): $extensionPath"
|
|
39
|
-
Write-Host "Chrome user data dir: $profilePath"
|
|
40
|
-
|
|
41
|
-
# Create a clean profile + Preferences to disable password manager & autofill
|
|
42
|
-
Remove-Item $profilePath -Recurse -Force -ErrorAction SilentlyContinue
|
|
43
|
-
New-Item $defaultDir -ItemType Directory -Force | Out-Null
|
|
44
|
-
|
|
45
|
-
$prefs = @{
|
|
46
|
-
"credentials_enable_service" = $false
|
|
47
|
-
"profile" = @{
|
|
48
|
-
"password_manager_enabled" = $false
|
|
49
|
-
}
|
|
50
|
-
"autofill" = @{
|
|
51
|
-
"profile_enabled" = $false
|
|
52
|
-
"address_enabled" = $false
|
|
53
|
-
"credit_card_enabled" = $false
|
|
54
|
-
}
|
|
55
|
-
} | ConvertTo-Json -Depth 6
|
|
56
|
-
|
|
57
|
-
# Write Preferences before Chrome starts (ASCII/UTF8 is fine)
|
|
58
|
-
$prefs | Set-Content -Path $prefsPath -Encoding ASCII
|
|
59
|
-
|
|
60
|
-
# Build args - load only hello-world extension
|
|
61
|
-
$chromeArgs = @(
|
|
62
|
-
"--start-maximized",
|
|
63
|
-
"--load-extension=$extensionPath",
|
|
64
|
-
"--user-data-dir=$profilePath",
|
|
65
|
-
"--no-first-run",
|
|
66
|
-
"--no-default-browser-check",
|
|
67
|
-
"--disable-infobars"
|
|
68
|
-
"https://testdriver.ai"
|
|
69
|
-
) -join ' '
|
|
70
|
-
|
|
71
|
-
Start-Process "cmd.exe" -ArgumentList "/c", "npx @puppeteer/browsers launch chrome -- $chromeArgs"
|
|
72
|
-
|
|
73
|
-
Write-Host "Script complete."
|
|
74
|
-
exit
|
|
File without changes
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
version: 6.0.0
|
|
2
|
-
session: 67f00511acbd9ccac373edf7
|
|
3
|
-
steps:
|
|
4
|
-
- prompt: download and install Spotify
|
|
5
|
-
commands:
|
|
6
|
-
- command: exec
|
|
7
|
-
lang: pwsh
|
|
8
|
-
code: |
|
|
9
|
-
$spotifyUrl = "https://download.scdn.co/SpotifySetup.exe"
|
|
10
|
-
$installerPath = "$env:TEMP\SpotifySetup.exe"
|
|
11
|
-
|
|
12
|
-
Write-Host "Downloading Spotify installer..."
|
|
13
|
-
Invoke-WebRequest -Uri $spotifyUrl -OutFile $installerPath -UseBasicParsing
|
|
14
|
-
|
|
15
|
-
Write-Host "Downloaded to $installerPath"
|
|
16
|
-
- command: exec
|
|
17
|
-
lang: pwsh
|
|
18
|
-
code: |
|
|
19
|
-
$installerPath = "$env:TEMP\SpotifySetup.exe"
|
|
20
|
-
|
|
21
|
-
if (-Not (Test-Path $installerPath)) {
|
|
22
|
-
Write-Error "Spotify installer not found at $installerPath"
|
|
23
|
-
exit 1
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
Write-Host "Installing Spotify silently..."
|
|
27
|
-
$process = Start-Process -FilePath $installerPath -ArgumentList "/silent" -Wait -PassThru
|
|
28
|
-
|
|
29
|
-
if ($process.ExitCode -eq 0) {
|
|
30
|
-
Write-Host "Spotify installed successfully."
|
|
31
|
-
Remove-Item $installerPath -Force
|
|
32
|
-
exit 0
|
|
33
|
-
} else {
|
|
34
|
-
Write-Error "Installation failed with exit code $($process.ExitCode)"
|
|
35
|
-
exit $process.ExitCode
|
|
36
|
-
}
|
|
37
|
-
- command: exec
|
|
38
|
-
lang: pwsh
|
|
39
|
-
code: |
|
|
40
|
-
# patch-path.ps1
|
|
41
|
-
|
|
42
|
-
$spotifyPath = "$env:APPDATA\Spotify"
|
|
43
|
-
|
|
44
|
-
if (-not ($env:PATH -like "*$spotifyPath*")) {
|
|
45
|
-
Write-Host "Temporarily appending Spotify to PATH for current session."
|
|
46
|
-
$env:PATH += ";$spotifyPath"
|
|
47
|
-
} else {
|
|
48
|
-
Write-Host "Spotify path already in PATH."
|
|
49
|
-
}
|
|
50
|
-
- command: exec
|
|
51
|
-
lang: pwsh
|
|
52
|
-
code: |
|
|
53
|
-
# launch-spotify.ps1
|
|
54
|
-
|
|
55
|
-
Write-Host "Launching Spotify..."
|
|
56
|
-
$spotifyExe = "$env:APPDATA\Spotify\Spotify.exe"
|
|
57
|
-
|
|
58
|
-
if (Test-Path $spotifyExe) {
|
|
59
|
-
Start-Process $spotifyExe
|
|
60
|
-
Write-Host "Spotify launched successfully."
|
|
61
|
-
} else {
|
|
62
|
-
Write-Error "Spotify executable not found at $spotifyExe"
|
|
63
|
-
exit 1
|
|
64
|
-
}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
version: 6.0.0
|
|
2
|
-
session: 67f00511acbd9ccac373edf7
|
|
3
|
-
steps:
|
|
4
|
-
- prompt: download and run docker vs code
|
|
5
|
-
commands:
|
|
6
|
-
- command: exec
|
|
7
|
-
lang: pwsh
|
|
8
|
-
code: |
|
|
9
|
-
$vsCodeUrl = "https://update.code.visualstudio.com/latest/win32-x64-user/stable"
|
|
10
|
-
$installerPath = "$env:TEMP\VSCodeSetup.exe"
|
|
11
|
-
|
|
12
|
-
Write-Host "Downloading Visual Studio Code installer..."
|
|
13
|
-
Invoke-WebRequest -Uri $vsCodeUrl -OutFile $installerPath -UseBasicParsing
|
|
14
|
-
|
|
15
|
-
Write-Host "Downloaded to $installerPath"
|
|
16
|
-
- command: exec
|
|
17
|
-
lang: pwsh
|
|
18
|
-
code: |
|
|
19
|
-
$installerPath = "$env:TEMP\VSCodeSetup.exe"
|
|
20
|
-
|
|
21
|
-
if (-Not (Test-Path $installerPath)) {
|
|
22
|
-
Write-Error "VS Code installer not found at $installerPath"
|
|
23
|
-
exit 1
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
Write-Host "Installing VS Code silently..."
|
|
27
|
-
$process = Start-Process -FilePath $installerPath -ArgumentList "/silent" -Wait -PassThru
|
|
28
|
-
|
|
29
|
-
if ($process.ExitCode -eq 0) {
|
|
30
|
-
Write-Host "VS Code installed successfully."
|
|
31
|
-
Remove-Item $installerPath -Force
|
|
32
|
-
exit 0
|
|
33
|
-
} else {
|
|
34
|
-
Write-Error "Installation failed with exit code $($process.ExitCode)"
|
|
35
|
-
exit $process.ExitCode
|
|
36
|
-
}
|
|
37
|
-
- command: exec
|
|
38
|
-
lang: pwsh
|
|
39
|
-
code: |
|
|
40
|
-
# patch-path.ps1
|
|
41
|
-
|
|
42
|
-
$codePath = "$env:LOCALAPPDATA\Programs\Microsoft VS Code\bin"
|
|
43
|
-
|
|
44
|
-
if (-not ($env:PATH -like "*$codePath*")) {
|
|
45
|
-
Write-Host "Temporarily appending VS Code bin to PATH for current session."
|
|
46
|
-
$env:PATH += ";$codePath"
|
|
47
|
-
} else {
|
|
48
|
-
Write-Host "VS Code path already in PATH."
|
|
49
|
-
}
|
|
50
|
-
- command: exec
|
|
51
|
-
lang: pwsh
|
|
52
|
-
code: |
|
|
53
|
-
# install-docker-extension.ps1
|
|
54
|
-
|
|
55
|
-
$extensionId = "ms-azuretools.vscode-docker"
|
|
56
|
-
|
|
57
|
-
Write-Host "Installing Docker extension for VS Code..."
|
|
58
|
-
$process = Start-Process "code" -ArgumentList "--install-extension $extensionId --force" -Wait -PassThru
|
|
59
|
-
|
|
60
|
-
if ($process.ExitCode -eq 0) {
|
|
61
|
-
Write-Host "Extension installed successfully."
|
|
62
|
-
exit 0
|
|
63
|
-
} else {
|
|
64
|
-
Write-Error "Extension installation failed with exit code $($process.ExitCode)"
|
|
65
|
-
exit $process.ExitCode
|
|
66
|
-
}
|
|
67
|
-
- command: exec
|
|
68
|
-
lang: pwsh
|
|
69
|
-
code: |
|
|
70
|
-
# launch-vscode.ps1
|
|
71
|
-
|
|
72
|
-
Write-Host "Launching Visual Studio Code..."
|
|
73
|
-
Start-Process "code"
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
version: 6.0.0
|
|
2
|
-
steps:
|
|
3
|
-
- prompt: launch chrome
|
|
4
|
-
commands:
|
|
5
|
-
- command: exec
|
|
6
|
-
lang: pwsh
|
|
7
|
-
code: |
|
|
8
|
-
npm install dashcam@beta -g
|
|
9
|
-
npm list -g dashcam
|
|
10
|
-
- command: exec
|
|
11
|
-
lang: pwsh
|
|
12
|
-
code: dashcam track --name=TestDriver --type=app --pattern="C:\Users\testdriver\Documents\testdriver.log"
|
|
13
|
-
- command: exec
|
|
14
|
-
lang: pwsh
|
|
15
|
-
code: dashcam start
|
|
16
|
-
- command: exec
|
|
17
|
-
lang: pwsh
|
|
18
|
-
code: |
|
|
19
|
-
Start-Process "C:/Program Files/Google/Chrome/Application/chrome.exe" -ArgumentList "--start-maximized", "--guest", "https://testdriver-sandbox.vercel.app/login"
|
|
20
|
-
- command: wait-for-text
|
|
21
|
-
text: "TestDriver.ai Sandbox"
|
|
22
|
-
timeout: 60000
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
version: 6.0.0
|
|
2
|
-
steps:
|
|
3
|
-
- prompt: dashcam
|
|
4
|
-
commands:
|
|
5
|
-
- command: exec
|
|
6
|
-
lang: sh
|
|
7
|
-
code: |
|
|
8
|
-
dashcam auth 4e93d8bf-3886-4d26-a144-116c4063522d
|
|
9
|
-
dashcam logs --add --name="TestDriver" --type=file --file="/tmp/testdriver.log"
|
|
10
|
-
- command: exec
|
|
11
|
-
lang: sh
|
|
12
|
-
code: dashcam record > /dev/null 2>&1 &
|
|
13
|
-
- command: exec
|
|
14
|
-
lang: sh
|
|
15
|
-
code: dashcam logs --add --name=TestDriver --type=file --file="/tmp/testdriver.log"
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
version: 5.1.1
|
|
2
|
-
session: 67f00511acbd9ccac373edf7
|
|
3
|
-
steps:
|
|
4
|
-
- prompt: launch chrome
|
|
5
|
-
commands:
|
|
6
|
-
- command: exec
|
|
7
|
-
lang: sh
|
|
8
|
-
code: |
|
|
9
|
-
npm install dashcam@beta -g
|
|
10
|
-
npm list -g dashcam
|
|
11
|
-
- command: exec
|
|
12
|
-
lang: sh
|
|
13
|
-
code: |
|
|
14
|
-
google-chrome \
|
|
15
|
-
--start-maximized \
|
|
16
|
-
--disable-infobars \
|
|
17
|
-
--disable-fre \
|
|
18
|
-
--no-default-browser-check \
|
|
19
|
-
--no-first-run \
|
|
20
|
-
--guest \
|
|
21
|
-
"https://testdriver-sandbox.vercel.app/" \
|
|
22
|
-
>/dev/null 2>&1 &
|
|
23
|
-
- command: wait-for-text
|
|
24
|
-
text: testdriver-sandbox
|
|
25
|
-
timeout: 60000
|