37 lines
1.6 KiB
TypeScript
37 lines
1.6 KiB
TypeScript
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')
|
|
})
|
|
})
|