merge: test/activation-e2e — Maestro activation E2E + mock opencode server (reviewed: APPROVE after fixes)
This commit is contained in:
@@ -334,6 +334,7 @@ export default function SessionsScreen() {
|
||||
<TouchableOpacity
|
||||
style={[styles.addButton, isDark && styles.addButtonDark]}
|
||||
onPress={() => router.push("/connection/add")}
|
||||
testID="add-connection-button"
|
||||
>
|
||||
<Text style={[styles.addButtonText, isDark && styles.addButtonTextDark]}>Add Connection</Text>
|
||||
</TouchableOpacity>
|
||||
@@ -351,9 +352,10 @@ export default function SessionsScreen() {
|
||||
onPress={() => dirSheetRef.current?.expand()}
|
||||
onLongPress={() => router.push("/(tabs)/connections")}
|
||||
activeOpacity={0.7}
|
||||
testID="connection-status-bar"
|
||||
>
|
||||
<View style={styles.connectionInfo}>
|
||||
<View style={[styles.connectionDot, { backgroundColor: "#22c55e" }]} />
|
||||
<View style={[styles.connectionDot, { backgroundColor: "#22c55e" }]} testID="connection-status-dot" />
|
||||
<Text style={[styles.connectionName, isDark && styles.textDark]} numberOfLines={1}>
|
||||
{activeConnection.name}
|
||||
</Text>
|
||||
@@ -409,6 +411,7 @@ export default function SessionsScreen() {
|
||||
onPress={onFabPress}
|
||||
onLongPress={onFabLongPress}
|
||||
delayLongPress={500}
|
||||
testID="new-session-fab"
|
||||
>
|
||||
<Ionicons name="add" size={28} color={isDark ? "#0a0a0a" : "#ffffff"} />
|
||||
</TouchableOpacity>
|
||||
|
||||
@@ -185,6 +185,7 @@ export default function AddConnectionScreen() {
|
||||
autoCapitalize="none"
|
||||
autoCorrect={false}
|
||||
keyboardType="url"
|
||||
testID="connect-ip-input"
|
||||
/>
|
||||
<Text style={[styles.ipColon, isDark && styles.textDark]}>:</Text>
|
||||
<TextInput
|
||||
@@ -194,6 +195,7 @@ export default function AddConnectionScreen() {
|
||||
value={port}
|
||||
onChangeText={setPort}
|
||||
keyboardType="number-pad"
|
||||
testID="connect-port-input"
|
||||
/>
|
||||
</View>
|
||||
|
||||
@@ -216,6 +218,7 @@ export default function AddConnectionScreen() {
|
||||
value={password}
|
||||
onChangeText={setPassword}
|
||||
secureTextEntry
|
||||
testID="connect-password-input"
|
||||
/>
|
||||
<Text style={[styles.usernameHint, isDark && styles.hintDark]}>
|
||||
Username defaults to <Text style={styles.code}>opencode</Text>. Custom username? Use{" "}
|
||||
@@ -230,6 +233,7 @@ export default function AddConnectionScreen() {
|
||||
style={[styles.connectButton, isDark && styles.connectButtonDark]}
|
||||
onPress={handleQuickConnect}
|
||||
disabled={isConnecting}
|
||||
testID="connect-submit-button"
|
||||
>
|
||||
{isConnecting ? (
|
||||
<ActivityIndicator size="small" color={isDark ? "#0a0a0a" : "#ffffff"} />
|
||||
|
||||
@@ -640,6 +640,7 @@ export default function SessionScreen() {
|
||||
editable={!speech.listening}
|
||||
multiline
|
||||
maxLength={10000}
|
||||
testID="chat-message-input"
|
||||
/>
|
||||
{/* Stop button: only when busy and no input */}
|
||||
{isSending && !input.trim() && attachments.length === 0 && !speech.listening && (
|
||||
@@ -661,7 +662,7 @@ export default function SessionScreen() {
|
||||
)}
|
||||
{/* Send button: when there's input */}
|
||||
{!speech.listening && (input.trim() || attachments.length > 0) && (
|
||||
<TouchableOpacity style={s.sendBtn} onPress={handleSend}>
|
||||
<TouchableOpacity style={s.sendBtn} onPress={handleSend} testID="chat-send-button">
|
||||
<Ionicons name="send" size={20} color="#ffffff" />
|
||||
</TouchableOpacity>
|
||||
)}
|
||||
|
||||
Reference in New Issue
Block a user