molecule-core/workspace-server
Hongming Wang eb42f7d145 test(middleware): branch coverage for CanvasOrBearer + IsSameOriginCanvas (closes #1818)
Per the 2026-04-23 audit, wsauth_middleware.go had two coverage holes
on auth-boundary code:

  CanvasOrBearer       50.0% (only fail-open + Origin paths covered)
  IsSameOriginCanvas    0.0% (exported wrapper never exercised)

This adds focused tests for the missing branches:

  CanvasOrBearer:
    - ValidBearer_Passes              (path-1 success)
    - InvalidBearer_Returns401        (auth-escape regression: bad
                                        bearer + matching Origin must
                                        NOT fall through to Origin)
    - AdminTokenEnv_Passes            (ADMIN_TOKEN constant-time match)
    - DBError_FailOpen                (documented fail-open behavior)
    - SameOriginCanvas_Passes         (path-3 combined-tenant image)

  IsSameOriginCanvas / isSameOriginCanvas:
    - ExportedWrapper_DelegatesToInternal
    - DisabledByEnv                   (CANVAS_PROXY_URL unset short-circuit)
    - BranchCoverage                  (table-driven: 11 host/referer/origin
                                        cases incl. the h.example.com.evil.com
                                        suffix-attack rejection)

Coverage moves CanvasOrBearer 50% → 100%, IsSameOriginCanvas 0% → 100%,
and middleware-package overall 81.6% → 86.0%. No production code change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 04:23:24 -07:00
..
cmd/server feat(#1957): wire gh-identity plugin into workspace-server 2026-04-24 15:01:41 +00:00
internal test(middleware): branch coverage for CanvasOrBearer + IsSameOriginCanvas (closes #1818) 2026-04-26 04:23:24 -07:00
migrations feat(a2a): queue-on-busy — Phase 1 of priority queue (#1870) 2026-04-23 14:09:29 -07:00
pkg/provisionhook feat(#1957): wire gh-identity plugin into workspace-server 2026-04-24 15:01:41 +00:00
.ci-force chore: force Platform(Go) CI run on main — validate go vet clean 2026-04-21 15:43:19 +00:00
.gitignore feat(ws-server): pull env from CP on startup 2026-04-19 02:41:15 -07:00
.golangci.yaml chore(workspace-server): add golangci.yaml disabling errcheck 2026-04-24 07:16:54 +00:00
Dockerfile chore: extract ContextMenu Zustand fix + a2a_proxy local-docker SSRF bypass + workspace-server Dockerfile GID entrypoint 2026-04-22 20:00:16 -07:00
Dockerfile.tenant feat(terminal): remote path via aws ec2-instance-connect + pty 2026-04-21 18:13:29 -07:00
entrypoint-tenant.sh fix(security): add USER directive before ENTRYPOINT in all tenant images (#1155) 2026-04-20 23:51:33 +00:00
go.mod feat(#1957): wire gh-identity plugin into workspace-server 2026-04-24 15:01:41 +00:00
go.sum feat(#1957): wire gh-identity plugin into workspace-server 2026-04-24 18:28:18 +00:00