Skip to content

Commit ebb7dbe

Browse files
isc-kluclaude
andcommitted
Integration tests against an IRIS container for release-preparation PRs
Replaces the placeholder test with a suite that opens a multi-root workspace whose folders connect to one iris-community container by each supported mechanism (objectscript.conn host/port, docker-compose port resolution, intersystems.servers entry, isfs), plus an inactive folder pointing at an unreachable host. The container's /api/atelier session timeout is 10 s so expired-session recovery is exercised. Runs from a new prepare-release.yml workflow on PRs from prepare-* branches and on manual dispatch; the old npm test step is removed from the per-PR workflows. Also fixes the runner, which could not launch VS Code at all: bump @vscode/test-electron to 3.x (2.x looks for the renamed Contents/MacOS/Electron), drop the rejected -n arg, unset ELECTRON_RUN_AS_NODE inherited from extension-spawned terminals, use a fresh user-data-dir per run, and make the mocha runner's promise settle when the tests finish. Closes #1863 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
1 parent 5b1d295 commit ebb7dbe

22 files changed

Lines changed: 531 additions & 257 deletions

File tree

.github/workflows/main.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,6 @@ jobs:
6565
- name: lint
6666
run: npm run lint
6767
- run: npm run compile
68-
- name: npm test
69-
run: xvfb-run npm test
7068
- name: Build package
7169
run: |
7270
npx @vscode/vsce package -o ${{ steps.set-version.outputs.name }}.vsix
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: Pre-release tests
2+
3+
# Integration tests against a real IRIS container. Too slow to run on every PR, so they only run on
4+
# release-preparation PRs (source branch "prepare-*") and on demand.
5+
on:
6+
pull_request:
7+
branches:
8+
- master
9+
- prerelease
10+
workflow_dispatch:
11+
12+
jobs:
13+
integration:
14+
if: github.event_name == 'workflow_dispatch' || startsWith(github.head_ref, 'prepare-')
15+
timeout-minutes: 30
16+
runs-on: ubuntu-latest
17+
steps:
18+
- uses: actions/checkout@v6
19+
- uses: actions/setup-node@v6
20+
with:
21+
node-version: 24
22+
- run: npm install
23+
- name: Start IRIS
24+
run: docker compose -f test-fixtures/client-compose/docker-compose.yml up -d --wait --wait-timeout 300
25+
- name: Run integration tests
26+
run: xvfb-run npm test
27+
- name: IRIS logs
28+
if: failure()
29+
run: docker compose -f test-fixtures/client-compose/docker-compose.yml logs
30+
- name: Stop IRIS
31+
if: always()
32+
run: docker compose -f test-fixtures/client-compose/docker-compose.yml down -v

.github/workflows/prerelease.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,6 @@ jobs:
6060
- name: lint
6161
run: npm run lint
6262
- run: npm run compile
63-
- name: npm test
64-
run: xvfb-run npm test
6563
- name: Build pre-release package
6664
run: |
6765
npx @vscode/vsce package --pre-release -o ${{ steps.set-version.outputs.name }}.vsix

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,8 @@ out/
66
dist/
77
*.vsix
88
vscode*.d.ts
9-
test-fixtures
109
.DS_Store
10+
11+
# Files created by the integration tests
12+
test-fixtures/*/src/*
13+
!test-fixtures/*/src/.gitkeep

0 commit comments

Comments
 (0)