test(e2e): skip anonymous-state tests when the server runs locally - #207
Merged
Conversation
ide/auth.py short-circuits identity for local servers:
def get_user_info():
if routes.is_running_locally():
return {'email': 'localuser@local.host'}
so a local server has NO anonymous state — every request is that user. Three
tests assert anonymous behaviour and therefore cannot pass locally:
test_home_page_sign_in_link a.signin is hidden (you are signed in)
test_api_login_unauthenticated /api/login returns new_user, not not_logged_in
test_docs_help_link_from_ide a jQuery-UI overlay (the new-user dialog)
intercepts the click
They now skip in that situation and still run against a deployed URL, where the
assertions mean something. /api/login is the tell: locally it reports new_user
for localuser@local.host, which has no User record.
This makes the local run honest rather than green-by-deletion; the underlying
hack is worth removing separately (see follow-up branch) so these paths can be
tested locally against an auth emulator instead of being skipped.
NOT VERIFIED BY ME — I have no local glowscript server. Expect 21 passed,
3 skipped against http://localhost:8080.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G7y9rTA1r8r8EhEnPSQenR
5 tasks
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.
Three e2e tests fail against a local server, and cannot pass there.
ide/auth.pyshort-circuits identity when running locally:So a local server has no anonymous state — every request is that user. The three failures all follow from it:
test_home_page_sign_in_linka.signinhiddentest_api_login_unauthenticatednew_user≠not_logged_intest_docs_help_link_from_ideui-widget-overlayThey now skip in local mode and still run against a deployed URL, where the assertions are meaningful.
/api/loginis the tell.http://localhost:8080.Follow-up: the local-auth short-circuit is itself worth replacing with an auth emulator, so these paths can be exercised locally rather than skipped. The same hack exists in
webvpython/flaskHost/src/auth.py:73.