Skip to content

Commit 03b09ff

Browse files
committed
feat: qr code text input for e2e tests
1 parent 3eb5bcd commit 03b09ff

File tree

3 files changed

+72
-10
lines changed

3 files changed

+72
-10
lines changed

app/src/main/java/to/bitkit/ui/scaffold/AppAlertDialog.kt

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,34 @@ fun AppAlertDialog(
3232
dismissOnClickOutside = false,
3333
dismissOnBackPress = false,
3434
),
35+
) {
36+
AppAlertDialog(
37+
title = title,
38+
onConfirm = onConfirm,
39+
onDismiss = onDismiss,
40+
modifier = modifier,
41+
confirmText = confirmText,
42+
dismissText = dismissText,
43+
onDismissRequest = onDismissRequest,
44+
properties = properties,
45+
textContent = { BodyM(text = text, color = Colors.White64) },
46+
)
47+
}
48+
49+
@Composable
50+
fun AppAlertDialog(
51+
title: String,
52+
onConfirm: () -> Unit,
53+
onDismiss: () -> Unit,
54+
modifier: Modifier = Modifier,
55+
confirmText: String = stringResource(R.string.common__ok),
56+
dismissText: String = stringResource(R.string.common__dialog_cancel),
57+
onDismissRequest: () -> Unit = onDismiss,
58+
properties: DialogProperties = DialogProperties(
59+
dismissOnClickOutside = false,
60+
dismissOnBackPress = false,
61+
),
62+
textContent: @Composable () -> Unit,
3563
) {
3664
AlertDialog(
3765
onDismissRequest = onDismissRequest,
@@ -52,7 +80,7 @@ fun AppAlertDialog(
5280
}
5381
},
5482
title = { Title(text = title) },
55-
text = { BodyM(text = text, color = Colors.White64) },
83+
text = textContent,
5684
shape = MaterialTheme.shapes.medium,
5785
properties = properties,
5886
containerColor = Colors.Gray5,

app/src/main/java/to/bitkit/ui/screens/scanner/QrScanningScreen.kt

Lines changed: 39 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,8 @@ import androidx.camera.view.PreviewView
2121
import androidx.compose.foundation.background
2222
import androidx.compose.foundation.layout.Box
2323
import androidx.compose.foundation.layout.Column
24-
import androidx.compose.foundation.layout.Spacer
2524
import androidx.compose.foundation.layout.fillMaxSize
2625
import androidx.compose.foundation.layout.fillMaxWidth
27-
import androidx.compose.foundation.layout.height
2826
import androidx.compose.foundation.layout.navigationBarsPadding
2927
import androidx.compose.foundation.layout.padding
3028
import androidx.compose.foundation.layout.size
@@ -46,6 +44,7 @@ import androidx.compose.ui.Modifier
4644
import androidx.compose.ui.draw.clip
4745
import androidx.compose.ui.draw.clipToBounds
4846
import androidx.compose.ui.platform.LocalContext
47+
import androidx.compose.ui.platform.testTag
4948
import androidx.compose.ui.res.painterResource
5049
import androidx.compose.ui.res.stringResource
5150
import androidx.compose.ui.unit.dp
@@ -65,10 +64,15 @@ import kotlinx.coroutines.Dispatchers
6564
import kotlinx.coroutines.delay
6665
import kotlinx.coroutines.withContext
6766
import to.bitkit.R
67+
import to.bitkit.env.Env
6868
import to.bitkit.ext.getClipboardText
6969
import to.bitkit.models.Toast
7070
import to.bitkit.ui.appViewModel
7171
import to.bitkit.ui.components.PrimaryButton
72+
import to.bitkit.ui.components.SecondaryButton
73+
import to.bitkit.ui.components.TextInput
74+
import to.bitkit.ui.components.VerticalSpacer
75+
import to.bitkit.ui.scaffold.AppAlertDialog
7276
import to.bitkit.ui.scaffold.AppTopBar
7377
import to.bitkit.ui.scaffold.SheetTopBar
7478
import to.bitkit.ui.shared.util.gradientBackground
@@ -231,7 +235,8 @@ fun QrScanningScreen(
231235
galleryLauncher.launch("image/*")
232236
}
233237
},
234-
onPasteFromClipboard = handlePaste(context, app, setScanResult)
238+
onPasteFromClipboard = handlePaste(context, app, setScanResult),
239+
onSubmitDebug = setScanResult,
235240
)
236241
}
237242
}
@@ -262,6 +267,7 @@ private fun Content(
262267
onClickGallery: () -> Unit,
263268
onPasteFromClipboard: () -> Unit,
264269
modifier: Modifier = Modifier,
270+
onSubmitDebug: (String?) -> Unit,
265271
) {
266272
Column(
267273
modifier = modifier
@@ -313,7 +319,7 @@ private fun Content(
313319
)
314320
}
315321
}
316-
Spacer(modifier = Modifier.height(16.dp))
322+
VerticalSpacer(16.dp)
317323
PrimaryButton(
318324
icon = {
319325
Icon(
@@ -324,7 +330,35 @@ private fun Content(
324330
text = stringResource(R.string.other__qr_paste),
325331
onClick = onPasteFromClipboard,
326332
)
327-
Spacer(modifier = Modifier.height(16.dp))
333+
334+
@Suppress("KotlinConstantConditions")
335+
if (Env.isE2eTest) {
336+
var showDialog by remember { mutableStateOf(false) }
337+
var debugValue by remember { mutableStateOf("") }
338+
VerticalSpacer(16.dp)
339+
SecondaryButton(
340+
text = "Enter QRCode String",
341+
onClick = { showDialog = true },
342+
modifier = Modifier.testTag("ScanPrompt")
343+
)
344+
if (showDialog) {
345+
AppAlertDialog(
346+
title = "",
347+
confirmText = stringResource(R.string.common__yes_proceed),
348+
onConfirm = { onSubmitDebug(debugValue) },
349+
onDismiss = { showDialog = false },
350+
modifier = Modifier.testTag("QRDialog")
351+
) {
352+
TextInput(
353+
value = debugValue,
354+
onValueChange = { debugValue = it },
355+
modifier = Modifier.testTag("QRInput")
356+
)
357+
}
358+
}
359+
}
360+
361+
VerticalSpacer(16.dp)
328362
}
329363
}
330364

docs/e2e-test-ids.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -182,13 +182,13 @@ Legend:
182182
| N2 ||
183183
| N3 ||
184184
| NavigationClose ||
185-
| QRInput | |
185+
| QRInput | |
186186
| ReceivedTransaction ||
187187
| RecipientInput ||
188188
| RecipientManual ||
189189
| ReviewAmount-primary ||
190190
| Scan ||
191-
| ScanPrompt | |
191+
| ScanPrompt | |
192192
| Send ||
193193
| SendAmountNumberPad ||
194194
| SendSuccess ||
@@ -470,7 +470,7 @@ Legend:
470470
| Path ||
471471
| PortInput ||
472472
| QRCode ||
473-
| QRInput | |
473+
| QRInput | |
474474
| RGSServer ||
475475
| RGSUrl ||
476476
| RebroadcastLDKTXS | 🚫 |
@@ -482,7 +482,7 @@ Legend:
482482
| ResetSuggestions ||
483483
| ResetToDefault ||
484484
| RestartLDK | 🚫 |
485-
| ScanPrompt | |
485+
| ScanPrompt | |
486486
| SecuritySettings ||
487487
| SeedContaider ||
488488
| ShowBalance ||

0 commit comments

Comments
 (0)