import { resolveMobileE2eSupabaseOverride } from '../src/lib/e2e-runtime-bootstrap' const LOCAL_URL = 'http://10.0.2.2:55321' const PUBLISHABLE_KEY = `sb_publishable_${'a'.repeat(24)}` describe('mobile local Supabase E2E override', () => { it('does nothing in ordinary debug and release runtime configuration', () => { expect(resolveMobileE2eSupabaseOverride(undefined, 'android')).toBeNull() expect(resolveMobileE2eSupabaseOverride({ e2eTestBuild: false, supabaseUrlOverride: '', supabaseAnonKeyOverride: '', }, 'android')).toBeNull() }) it('accepts only the exact Android emulator endpoint in an E2E build', () => { expect(resolveMobileE2eSupabaseOverride({ e2eTestBuild: true, supabaseUrlOverride: LOCAL_URL, supabaseAnonKeyOverride: PUBLISHABLE_KEY, }, 'android')).toEqual({ url: LOCAL_URL, anonKey: PUBLISHABLE_KEY }) }) it.each([ ['release build', false, LOCAL_URL, PUBLISHABLE_KEY, 'android'], ['production host', true, 'https://llnocwyqvhgwpdjcqqyw.supabase.co', PUBLISHABLE_KEY, 'android'], ['arbitrary LAN host', true, 'http://192.168.1.4:55321', PUBLISHABLE_KEY, 'android'], ['secret key', true, LOCAL_URL, `sb_secret_${'a'.repeat(24)}`, 'android'], ['iOS', true, LOCAL_URL, PUBLISHABLE_KEY, 'ios'], ])('rejects override in %s', (_label, e2eTestBuild, url, anonKey, platform) => { expect(() => resolveMobileE2eSupabaseOverride({ e2eTestBuild, supabaseUrlOverride: url, supabaseAnonKeyOverride: anonKey, }, platform)).toThrow('mobile_e2e_supabase_override_invalid') }) })