Skip to content

test(e2e): skip anonymous-state tests when the server runs locally - #207

Merged
sspickle merged 1 commit into
masterfrom
fix/e2e-local-auth-skips
Aug 23, 2026
Merged

test(e2e): skip anonymous-state tests when the server runs locally#207
sspickle merged 1 commit into
masterfrom
fix/e2e-local-auth-skips

Conversation

@sspickle

Copy link
Copy Markdown
Collaborator

Three e2e tests fail against a local server, and cannot pass there.

ide/auth.py short-circuits identity when running locally:

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. The three failures all follow from it:

test symptom why
test_home_page_sign_in_link a.signin hidden you are signed in
test_api_login_unauthenticated new_usernot_logged_in authenticated, but no User record
test_docs_help_link_from_ide click intercepted by ui-widget-overlay the new-user dialog sits over the page

They now skip in local mode and still run against a deployed URL, where the assertions are meaningful. /api/login is the tell.

⚠️ Not verified by me — I have no local glowscript server. Expect 21 passed, 3 skipped against 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.

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
@sspickle
sspickle merged commit 744de98 into master Aug 23, 2026
@sspickle
sspickle deleted the fix/e2e-local-auth-skips branch August 23, 2026 22:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant