import { expect, test } from 'bun:test'; import { chromium, type Browser } from 'playwright'; import { generatePickerCode, handleCookiePickerRoute, hasActivePicker } from '../src/cookie-picker-routes'; test('a same-site cross-port browser request carries the picker cookie but cannot mutate the session', async () => { let removed = 0; const observed: Array<{ origin: string | null; cookiePresent: boolean; status: number; contentType: string | null }> = []; const bm = { getActiveSession: () => ({ getPage: () => ({ context: () => ({ clearCookies: async () => { removed++; } }) }) }) } as any; const picker = Bun.serve({ hostname: '127.0.0.1', port: 0, async fetch(request) { const response = await handleCookiePickerRoute(new URL(request.url), request, bm); if (request.method === 'POST') observed.push({ origin: request.headers.get('origin'), cookiePresent: /(?:^|;\s*)gstack_picker=/.test(request.headers.get('cookie') ?? ''), status: response.status, contentType: request.headers.get('content-type') }); if (request.method === 'GET' && response.status === 200) { const config = (await response.text()).match(/