Files
web-terminal/ios/IntegrationTests/APIClientTokenPolicyProbe.swift
Yaojia Wang ddab77b337 test(ios): close T-iOS-32's end-to-end half — real worktree lifecycle against a real server
T-iOS-32's acceptance is "builder 测试 + 端到端一次". The builder half was green,
but grep for projects/worktree across the whole test tree returned nothing — no
test had ever created or removed a real git worktree against a real server.

Six tests on a throwaway git fixture: create/remove/prune verified against both
the filesystem and git's own `worktree list --porcelain` + .git/worktrees/, and
asserting the values the SERVER derives rather than echoing our input (branch
feature/e2e-worktree becomes directory feature-e2e-worktree; the raw branch name
must never appear in the path). Includes a differential leg for the guarded-route
rule — the same request without Origin is 403 with zero side effects, and with it
is 200 — which needs raw URLSession, since APIClient structurally cannot emit an
Origin-less guarded request.

GET /sessions gets its own HOME-isolated server: history.ts reads
os.homedir()/.claude/projects, so against the shared harness the assertions would
land on the developer's real Claude history, and in CI the directory is absent so
it degrades to [] and proves nothing.

Integration tests 26 -> 32, independently re-run.
2026-07-30 16:58:22 +02:00

26 lines
1.1 KiB
Swift
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// APIClientTokenPolicyProbe.swift F3APIClient
//
// `APIClient` ********
// `APIClient.AuthCookie` " APIClient "
// import SessionCore
// `AuthCookie` `SessionCore.AuthCookie`
//
// **** import APIClient `AuthCookie` / `AccessTokenRule`
// APIClient internal
// TokenPolicyDriftTests SessionCore `SessionCore.AuthCookie`
@testable import APIClient
enum APIClientTokenPolicy {
static var cookieName: String { AuthCookie.name }
static func headerValue(for token: String) -> String {
AuthCookie.headerValue(for: token)
}
static func isWellFormed(_ candidate: String) -> Bool {
AccessTokenRule.isWellFormed(candidate)
}
}