Conversation
Replace the placeholder suite with checks that every intersystems.servers configuration connects without prompting, both through the extension's own API/REST layer and through the released ObjectScript extension. Runs in a new prepare-release.yml workflow on prepare-* PRs and on demand. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Run the IRIS containers under Podman and install the ObjectScript extension's pre-release, whose Podman support the docker-compose case needs. Drop the runner's Docker Compose so resolution goes through Podman. The docker-compose cases fail until the ObjectScript Podman build reaches the Marketplace; the post-timeout round-trip no longer re-verifies delete-sync, unreliable on the current release. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replaces the placeholder
npm test(a singleassert.ok("All good"), run on every push) with an integration suite against two IRIS containers, run by a newprepare-release.ymlworkflow on PRs fromprepare-*branches and on manual dispatch (Podman on the runner): ~1 min of container startup, then the cases.Companion of intersystems-community/vscode-objectscript#1870. Both repos run the same 12-case matrix, each installing the other extension's Marketplace release; here the released ObjectScript extension is the API consumer.
What runs
src/test/cases.tsgenerates one.code-workspaceper case intotest-fixtures/.generated/;runTest.tsopens each in a downloaded VS Code with the released ObjectScript extension installed alongside, andsrc/test/suite/extension.test.tsruns the checks that apply.test-fixtures/README.mdis the full matrix, the container layout, and how to run it locally.Two containers back every case:
iris(password only) andiris-anon(unauthenticated only), each with a 10-second/api/ateliersession timeout so expired-session recovery meets a real 401.Coverage
objectscript.connhost/port/credentialsobjectscript.conn.docker-composeport resolution (through Podman)objectscript.conn.servernaming anintersystems.serversentryisfs://folder on an entryFor every case, in a fresh user-data-dir: this extension's
getServerSpecresolves the entry without prompting and a plaintext password reaches API consumers;makeRESTRequestlists theUSERnamespace as the Servers view does; the ObjectScript extension'sasyncServerForUrireports the entry's host/port/credentials; a class written through the folder syncs to the server and back on delete iff active; aserverSidefolder lists the namespace. Every check then repeats past the session timeout. A credential prompt fails the case: VS Code suppresses modal dialogs in tests and an input box would block to the mocha timeout.Verified by mutation
Reverting #347 fails the password-reaches-consumers assertion; reverting #352 fails the anonymous listing checks.
Known failing on CI
The two
clientSide-os-dockercases need the ObjectScript extension's Podman support, first shipped in a 3.8.6 beta but not yet on the Marketplace, sorunTest.tsinstalls it with--pre-releaseand those cases will pass once that build is published. Until then they fail on CI; they pass locally against a Podman-capable build.Not covered
createSession,_isStillValid): they need typed input or seeded secret storage, andvscode.authentication.getSessionfrom a test hits VS Code's consent dialog even for this extension.makeRESTRequestthe way the view does.Other changes
@vscode/test-electron2.5 → 3.1 (2.x looks for a binary current VS Code no longer ships on macOS), plusskipLibCheckfor its typings.npm testremoved frommain.ymlandprerelease.yml, since it now needs the containers.--user-data-dirper case, and an assertion that the build under test (not the Marketplace release the ObjectScript extension pulls in as a dependency) is the one running..vscode/launch.json"Extension Tests" opens a generated case workspace.🤖 Generated with Claude Code