test(e2e): cover organization LLM profile key lifecycle - #1076
Draft
saurya wants to merge 1 commit into
Draft
Conversation
Co-authored-by: openhands <[email protected]>
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.
Migration
Ports https://github.com/OpenHands/saas-deploy/pull/586 from
OpenHands/saas-deployso the test ships with the OpenHands-Cloud chart release it validates.This pull request is based directly on
main, which includes the foundational Playwright harness from OpenHands-Cloud #1048.Original scenario contract
Scenario
Adds one Playwright spec with one test that creates a uniquely named organization-wide LLM profile using a disposable key, verifies only the non-secret
api_key_setflag and model, restores the prior active profile, and deletes the temporary profile through current UI selectors.Key handling
TEST_ORG_LLM_API_KEY.api_key_set: true; PR output and validation never print the key.Validation
npm cicompleted once in the isolated clonenpm run typecheck✅npx playwright test tests/org-llm-profile-key.spec.ts --list✅npm run lintConversationPage.ts,HomePage.ts, andsmoke.spec.ts; this new spec has no lint errorsEnvironment contract
e2e_tests/fixtures/auth.json: organization admin or ownerTEST_ORG_LLM_API_KEY: disposable valid provider keyTEST_ORG_LLM_MODEL: compatibleprovider/modelidentifierTEST_ORG_LLM_BASE_URL: optional compatible base URLMissing or unsuitable fixtures raise explicit errors; the test never silently skips.
Cleanup
The test deletes the unique temporary profile through the UI.
finallydeletes it defensively if needed and reactivates the original profile.Risk
Medium: briefly stores a disposable provider key in an organization profile and may trigger provider-side key validation. Use a restricted test key with no production access. No conversations or completions are created.
This pull request was created by an AI agent (OpenHands) on behalf of the user.
Port validation
e2e_tests/tests/org-llm-profile-key.spec.ts.tsc --noEmitpassed against the Cloud harness.--listdiscovery passed.TEST_*contracts documented above.AI disclosure: This pull request was migrated by an AI agent (OpenHands) on behalf of the user.