diff --git a/.github/scripts/run-nightly-e2e.sh b/.github/scripts/run-nightly-e2e.sh index e2c9942884..2d97c63c98 100755 --- a/.github/scripts/run-nightly-e2e.sh +++ b/.github/scripts/run-nightly-e2e.sh @@ -152,6 +152,7 @@ echo "Metro bundle pre-warmed for $bundle_platform" if [[ "$platform" == "android" ]]; then phase "Configuring Android localhost routing" adb -s "$device_id" reverse tcp:3000 tcp:3000 + adb -s "$device_id" reverse tcp:1986 tcp:1986 adb -s "$device_id" reverse tcp:8081 tcp:8081 fi diff --git a/__e2e__/setupApp.yml b/__e2e__/setupApp.yml index 329ee973de..9c6eba9757 100644 --- a/__e2e__/setupApp.yml +++ b/__e2e__/setupApp.yml @@ -28,10 +28,11 @@ appId: xyz.blueskyweb.app - back - extendedWaitUntil: visible: - id: e2eProxyHeaderInput + id: e2eConfigureProxy timeout: 180000 -- tapOn: - id: e2eProxyHeaderInput -- inputText: ${output.result} - tapOn: id: e2eConfigureProxy +- extendedWaitUntil: + visible: + id: e2eSignInAlice + timeout: 30000 diff --git a/dev-env/mock-server.ts b/dev-env/mock-server.ts index 12f5bb7edd..4fd172221a 100644 --- a/dev-env/mock-server.ts +++ b/dev-env/mock-server.ts @@ -7,8 +7,23 @@ let server: TestPDS // eslint-disable-next-line @typescript-eslint/no-misused-promises createHTTPServer(async (req, res) => { const url = parse(req.url || '/', true) + if (req.method === 'GET') { + if (!server) { + return res.writeHead(503).end() + } + return res + .writeHead(200, { + 'content-type': 'application/json', + }) + .end( + JSON.stringify({ + pdsUrl: server.pdsUrl, + appviewDid: server.appviewDid, + }), + ) + } if (req.method !== 'POST') { - return res.writeHead(200).end() + return res.writeHead(405).end() } try { console.log('Closing old server') diff --git a/src/view/com/testing/TestCtrls.e2e.tsx b/src/view/com/testing/TestCtrls.e2e.tsx index 48e9581f66..490cb0478b 100644 --- a/src/view/com/testing/TestCtrls.e2e.tsx +++ b/src/view/com/testing/TestCtrls.e2e.tsx @@ -1,5 +1,5 @@ -import {useRef, useState} from 'react' -import {Keyboard, LogBox, Pressable, TextInput, View} from 'react-native' +import {useState} from 'react' +import {LogBox, Pressable, View} from 'react-native' import {useQueryClient} from '@tanstack/react-query' import {BLUESKY_PROXY_HEADER} from '#/lib/constants' @@ -61,33 +61,23 @@ export function TestCtrls() { ) setShowLoggedOut(false) } - const proxyHeader = useRef('') - const configureProxy = () => { - const header = `${proxyHeader.current}#bsky_appview` + const configureProxy = async () => { + const res = await fetch('http://localhost:1986') + if (!res.ok) { + throw new Error(`Failed to load the E2E proxy DID: ${res.status}`) + } + const {appviewDid} = (await res.json()) as {appviewDid: string} + const header = `${appviewDid}#bsky_appview` BLUESKY_PROXY_HEADER.set(header) agent.configureProxy(header as any) hasConfiguredProxy = true setIsProxyConfigured(true) - Keyboard.dismiss() } return ( - { - proxyHeader.current = val - }} - autoComplete="off" - autoCorrect={false} - autoCapitalize="none" - onSubmitEditing={configureProxy} - style={BTN} - /> void configureProxy()} accessibilityRole="button" style={BTN} />