Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
91 commits
Select commit Hold shift + click to select a range
429b3c9
linux is back
ianjennings Sep 3, 2025
dacba79
base64 encode
ianjennings Oct 17, 2025
bdb8613
resolve merge
ianjennings Oct 17, 2025
b131dcd
add credentialless to see if we can get this to load
ianjennings Oct 17, 2025
f6949e8
bump v
ianjennings Oct 17, 2025
106514b
it works
ianjennings Oct 24, 2025
a5a5fc0
acceptance-linux
ianjennings Oct 24, 2025
035785b
remove testmo
ianjennings Oct 24, 2025
56d2ed1
gather
ianjennings Oct 24, 2025
6419875
update api key for local
ianjennings Oct 24, 2025
566e93b
updots
ianjennings Oct 24, 2025
1f5a1c8
fix catch err
ianjennings Oct 24, 2025
5d6db73
sdk prototype
ianjennings Nov 4, 2025
5f2cebb
migrate for new dashcam 1.0
ianjennings Nov 7, 2025
e96e603
sdk to test.mjs
ianjennings Nov 7, 2025
8d3d196
vitest
ianjennings Nov 7, 2025
35ef89e
correctly editing
ianjennings Nov 8, 2025
5711760
Update acceptance-sdk-tests.yml
ianjennings Nov 8, 2025
3920db2
disable aws
ianjennings Nov 8, 2025
330d8b6
update workflow
ianjennings Nov 8, 2025
1d61ca6
run all tests in folder
ianjennings Nov 8, 2025
5d8a2e9
use vitest
ianjennings Nov 8, 2025
4d6e697
run self-hosted less often
ianjennings Nov 8, 2025
eb07d72
increase hook timeout for non-hot vm
ianjennings Nov 11, 2025
1deb5d0
fix client / healingclient syntax error
ianjennings Nov 11, 2025
59537c6
debugable test results
ianjennings Nov 11, 2025
1fbb69a
eslint
ianjennings Nov 11, 2025
315df94
test
ianjennings Nov 11, 2025
d07a54a
seems ot be working
ianjennings Nov 11, 2025
edcbdaf
add global dashcam track functionality
ianjennings Nov 12, 2025
e3198a2
add sdk back
ianjennings Nov 12, 2025
1e1ea69
silent log forwarding
ianjennings Nov 12, 2025
9e58f4c
fix setup
ianjennings Nov 12, 2025
81a820c
checkout globalsetup to revert
ianjennings Nov 12, 2025
444d9ee
update for stack track
ianjennings Nov 12, 2025
25b59ca
refactor to use internal methods
ianjennings Nov 13, 2025
3f5f51a
sdk refactor
ianjennings Nov 13, 2025
e7850fa
remove recovery functions
ianjennings Nov 13, 2025
218ced4
v7
ianjennings Nov 14, 2025
223e356
making a mess
ianjennings Nov 14, 2025
e9aee30
first v7 linux passing
ianjennings Nov 14, 2025
86b81f5
passing prompt test
ianjennings Nov 14, 2025
a9cc299
tests working, error reporting looking good
ianjennings Nov 17, 2025
f771590
update td api root to prod
ianjennings Nov 18, 2025
1abbe7d
fix eslint and prettier
ianjennings Nov 18, 2025
80a3466
Merge branch 'main' into ianjennings/sdk-prototype
ianjennings Nov 18, 2025
e24b7ff
client -> testdriver
ianjennings Nov 18, 2025
0b3a05f
ensure type runs sequential
ianjennings Nov 18, 2025
ad57735
prompt caching, windows fixes
ianjennings Nov 19, 2025
a899f29
workflow runs on windows and linux
ianjennings Nov 19, 2025
bf60089
fix for rendersandbox
ianjennings Nov 19, 2025
548b0f6
fix for rendersandbox
ianjennings Nov 19, 2025
f492129
find recordings
ianjennings Nov 19, 2025
93d519c
fix eslint
ianjennings Nov 19, 2025
8ca3132
prettier
ianjennings Nov 19, 2025
da88bb5
fix for finding dashcam recording
ianjennings Nov 19, 2025
8714e73
dont forward all messages
ianjennings Nov 19, 2025
074b754
fix eslint
ianjennings Nov 19, 2025
02cc1c0
run prettier
ianjennings Nov 19, 2025
46ee2f9
fix for logfile not existing on track
ianjennings Nov 20, 2025
1c9db2b
prettier
ianjennings Nov 20, 2025
f41b5cd
pretty good checkpoint
ianjennings Nov 20, 2025
077f69d
it worked
ianjennings Nov 21, 2025
f677969
it worked
ianjennings Nov 21, 2025
946d1d7
stop for today
ianjennings Nov 21, 2025
cc7c186
linux passing
ianjennings Nov 21, 2025
91209b0
fix prettier
ianjennings Nov 21, 2025
06c36d6
this at least starts it
ianjennings Nov 22, 2025
18d11ae
absolute path progress
ianjennings Nov 22, 2025
8fd913a
all the way to upload
ianjennings Nov 22, 2025
252e3c8
video actually working
ianjennings Nov 22, 2025
73e77e8
1.4.10
ianjennings Nov 23, 2025
2b4f664
duration updates
ianjennings Nov 24, 2025
66fe7c9
Phase 1 Complete: Core Foundation
ianjennings Nov 24, 2025
54b43b2
Phase 2 Task 2.1: Vitest Hooks API
ianjennings Nov 24, 2025
011e4f3
Phase 3: Presets System
ianjennings Nov 24, 2025
6a741df
Phase 4: DX Polish - TypeScript Definitions and Migration Guide
ianjennings Nov 24, 2025
b78c191
📋 SDK v7 Implementation Complete Summary
ianjennings Nov 24, 2025
40b39ad
major refactor, logs, browser tarcking in dashcam
ianjennings Nov 25, 2025
ffbf929
decent sdk stopping
ianjennings Nov 26, 2025
47b97da
interactions
ianjennings Nov 26, 2025
2457d1d
timeline updates
ianjennings Nov 26, 2025
7ca07a2
update track interactions
ianjennings Nov 27, 2025
988f7d7
fix many bug
ianjennings Nov 28, 2025
346b6f3
updates
ianjennings Nov 28, 2025
7fb5117
friday
ianjennings Nov 29, 2025
b49793e
test sdk release 1
ianjennings Dec 1, 2025
2355bea
modify to send per file
ianjennings Dec 2, 2025
e049eb5
vitest plugin
ianjennings Dec 2, 2025
77d8f8a
vitest plugin
ianjennings Dec 2, 2025
9d1fdfa
decent place, some things still broken
ianjennings Dec 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
File renamed without changes.
75 changes: 75 additions & 0 deletions .github/workflows/acceptance-linux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: v6 Linux

on:
workflow_dispatch:
push:
branches:
- main
paths-ignore:
- "docs/**"
pull_request:
branches:
- main

schedule:
- cron: "0 0 * * *"

jobs:
# Job to gather all test files
test-setup:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 22
cache: npm
- run: npm ci

gather:
name: Gather Test Files
runs-on: ubuntu-latest
outputs:
test_files: ${{ steps.test_list.outputs.files }}
steps:
- name: Check out repository
uses: actions/checkout@v2

- name: Find all test files
id: test_list
run: |
FILES=$(ls ./testdriver/acceptance/*.yaml)
FILENAMES=$(basename -a $FILES)
FILES_JSON=$(echo "$FILENAMES" | jq -R -s -c 'split("\n")[:-1]')
echo "files=$FILES_JSON" >> $GITHUB_OUTPUT
test:
needs:
- gather
runs-on: ubuntu-latest
strategy:
matrix:
test: ${{ fromJson(needs.gather.outputs.test_files) }}
max-parallel: 8
fail-fast: false
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
cache: "npm"

- name: Install dependencies
run: NODE_ENV=production npm ci
- name: Run test in headless mode
run: node bin/testdriverai.js run testdriver/acceptance/${{ matrix.test }} --junit=out.xml
env:
FORCE_COLOR: 3
TD_API_KEY: 49c2996c-0687-40bf-9f2c-5d2e55b2a2c6
TD_WEBSITE: https://testdriver-sandbox.vercel.app
TD_THIS_FILE: ${{ matrix.test }}
TD_API_ROOT: "https://replayable-dev-ian-mac-m1-16.ngrok.io"
133 changes: 133 additions & 0 deletions .github/workflows/acceptance-sdk-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
name: Acceptance SDK Tests

on:
pull_request:
branches:
- main
push:
branches: [main]
paths-ignore:
- "docs/**"
# So that we can manually trigger tests when there's flake
workflow_dispatch:

jobs:
test-workflow:
name: Run SDK Tests - ${{ matrix.platform }}
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
platform: [linux, windows]
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
cache: "npm"

- name: Install dependencies
run: npm ci

- name: Run ESLint
run: npx eslint . --max-warnings 0

- name: Run Prettier
run: npx prettier --check .

- name: Run SDK tests with Vitest - ${{ matrix.platform }}
run: npx vitest run testdriver/acceptance-sdk/*.test.mjs
env:
FORCE_COLOR: 3
TD_API_KEY: ${{ secrets.TESTDRIVER_API_KEY }}
TEST_PLATFORM: ${{ matrix.platform }}
VERBOSE: true
LOGGING: true
continue-on-error: true

- name: Generate GitHub Summary
if: always()
run: |
echo "# 🧪 TestDriver SDK Test Results" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY

if [ -f test-results/results.json ]; then
node -e "
const fs = require('fs');
const results = JSON.parse(fs.readFileSync('test-results/results.json', 'utf8'));

const total = results.numTotalTests || 0;
const passed = results.numPassedTests || 0;
const failed = results.numFailedTests || 0;
const skipped = results.numPendingTests || 0;
const duration = ((results.testResults?.[0]?.endTime - results.testResults?.[0]?.startTime) / 1000 || 0).toFixed(2);

console.log('## 📊 Overview\n');
console.log('| Metric | Count |');
console.log('|--------|-------|');
console.log('| ✅ Passed | ' + passed + ' |');
console.log('| ❌ Failed | ' + failed + ' |');
console.log('| ⏭️ Skipped | ' + skipped + ' |');
console.log('| 📝 Total | ' + total + ' |');
console.log('| ⏱️ Duration | ' + duration + 's |');
console.log('');

if (failed > 0) {
console.log('## ❌ Failed Tests\n');
results.testResults?.forEach(file => {
file.assertionResults?.filter(test => test.status === 'failed').forEach(test => {
console.log('### ' + test.fullName);
console.log('**File:** \`' + file.name + '\`');
console.log('');
if (test.failureMessages?.length > 0) {
console.log('**Error:**');
console.log('\`\`\`');
console.log(test.failureMessages.join('\n').substring(0, 1000));
console.log('\`\`\`');
console.log('');
}
});
});
}

if (passed > 0) {
console.log('## ✅ Passed Tests\n');
results.testResults?.forEach(file => {
const passedTests = file.assertionResults?.filter(test => test.status === 'passed') || [];
if (passedTests.length > 0) {
console.log('### ' + file.name.split('/').pop());
passedTests.forEach(test => {
console.log('- ✅ ' + test.title);
});
console.log('');
}
});
}
" >> $GITHUB_STEP_SUMMARY
else
echo "⚠️ No test results found" >> $GITHUB_STEP_SUMMARY
fi

- name: Test Summary (JUnit)
uses: test-summary/action@v2
with:
paths: "test-results/junit.xml"
if: always()

- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: test-results-${{ matrix.platform }}
path: |
test-results/junit.xml
test-results/results.json
test-results/index.html
retention-days: 7
if-no-files-found: ignore
169 changes: 0 additions & 169 deletions .github/workflows/acceptance-v6.yml

This file was deleted.

5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@ lib-cov
coverage
*.lcov

# Test results
test-results/

# nyc test coverage
.nyc_output

Expand Down Expand Up @@ -158,4 +161,4 @@ index-K4K5CPUZ.html
node_modules
saves/*

.trigger
.trigger
Loading