import { afterEach, beforeEach, describe, expect, mock, spyOn, test } from 'bun:test'; import { generatePickerCode, handleCookiePickerRoute, hasActivePicker } from '../src/cookie-picker-routes'; import * as importer from '../src/cookie-import-browser'; import * as operation from '../src/cookie-import-operation'; import * as auth from '../src/cookie-auth-verification'; const origin = 'http://127.0.0.1:9470'; let bm: any; let context: any; let reads: ReturnType[]; let reset: ReturnType; let verify: ReturnType; let previousSelector: string | undefined; let previousIdentity: string | undefined; function page(url: string) { return { url: () => url, isClosed: () => false, context: () => context } as any; } async function request(path: string, cookie?: string, instance?: string, body?: unknown, bearer?: string) { const url = new URL(origin + '/cookie-picker' + path); return handleCookiePickerRoute(url, new Request(url, { method: body === undefined ? 'GET' : 'POST', headers: { Origin: origin, 'Content-Type': 'application/json', ...(cookie ? { Cookie: cookie } : {}), ...(instance ? { 'X-Gstack-Picker-Instance': instance } : {}), ...(bearer ? { Authorization: 'Bearer ' + bearer } : {}) }, ...(body === undefined ? {} : { body: JSON.stringify(body) }), }), bm, 'fixture-bearer'); } async function open(target: any) { const code = generatePickerCode({ target: { page: target, url: target.url() } }); const exchanged = await request('?code=' + code); expect(exchanged.status).toBe(302); const cookie = exchanged.headers.get('set-cookie')!.split(';')[0]; const response = await request('', cookie); expect(response.status).toBe(200); const html = await response.text(); const config = JSON.parse(html.match(/