Merge pull request #2193 from element-hq/feature/bma/sxcludePreviewFromCodeCoverage
Exclude preview from code coverage
This commit is contained in:
commit
57b2a0d17b
35 changed files with 88 additions and 111 deletions
|
|
@ -288,6 +288,8 @@ koverReport {
|
|||
"io.element.android.libraries.designsystem.theme.components.bottomsheet.*",
|
||||
)
|
||||
annotatedBy(
|
||||
"androidx.compose.ui.tooling.preview.Preview",
|
||||
"io.element.android.libraries.architecture.coverage.ExcludeFromCoverage",
|
||||
"io.element.android.libraries.designsystem.preview.PreviewsDayNight",
|
||||
"io.element.android.libraries.designsystem.preview.PreviewWithLargeHeight",
|
||||
)
|
||||
|
|
|
|||
|
|
@ -57,10 +57,7 @@ fun SearchMultipleUsersResultItem(
|
|||
|
||||
@Preview
|
||||
@Composable
|
||||
internal fun SearchMultipleUsersResultItemPreview() = ElementThemedPreview { ContentToPreview() }
|
||||
|
||||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
internal fun SearchMultipleUsersResultItemPreview() = ElementThemedPreview {
|
||||
Column {
|
||||
SearchMultipleUsersResultItem(
|
||||
searchResult = UserSearchResult(
|
||||
|
|
|
|||
|
|
@ -53,10 +53,7 @@ fun SearchSingleUserResultItem(
|
|||
|
||||
@Preview
|
||||
@Composable
|
||||
internal fun SearchSingleUserResultItemPreview() = ElementThemedPreview { ContentToPreview() }
|
||||
|
||||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
internal fun SearchSingleUserResultItemPreview() = ElementThemedPreview {
|
||||
Column {
|
||||
SearchSingleUserResultItem(
|
||||
searchResult = UserSearchResult(aMatrixUser(), isUnresolved = false),
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ import androidx.activity.ComponentActivity
|
|||
import androidx.compose.ui.test.junit4.createAndroidComposeRule
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
import io.element.android.libraries.architecture.AsyncAction
|
||||
import io.element.android.libraries.testtags.TestTags
|
||||
import io.element.android.libraries.ui.strings.CommonStrings
|
||||
import io.element.android.tests.testutils.EnsureNeverCalled
|
||||
import io.element.android.tests.testutils.EnsureNeverCalledWithParam
|
||||
|
|
@ -28,6 +29,7 @@ import io.element.android.tests.testutils.clickOn
|
|||
import io.element.android.tests.testutils.ensureCalledOnce
|
||||
import io.element.android.tests.testutils.ensureCalledOnceWithParam
|
||||
import io.element.android.tests.testutils.pressBack
|
||||
import io.element.android.tests.testutils.pressTag
|
||||
import org.junit.Rule
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
|
|
@ -53,6 +55,24 @@ class LogoutViewTest {
|
|||
eventsRecorder.assertSingle(LogoutEvents.Logout(false))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `confirming logout sends a LogoutEvents`() {
|
||||
val eventsRecorder = EventsRecorder<LogoutEvents>()
|
||||
rule.setContent {
|
||||
LogoutView(
|
||||
aLogoutState(
|
||||
logoutAction = AsyncAction.Confirming,
|
||||
eventSink = eventsRecorder
|
||||
),
|
||||
onChangeRecoveryKeyClicked = EnsureNeverCalled(),
|
||||
onBackClicked = EnsureNeverCalled(),
|
||||
onSuccessLogout = EnsureNeverCalledWithParam(),
|
||||
)
|
||||
}
|
||||
rule.pressTag(TestTags.dialogPositive.value)
|
||||
eventsRecorder.assertSingle(LogoutEvents.Logout(false))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `clicking on back invoke back callback`() {
|
||||
val eventsRecorder = EventsRecorder<LogoutEvents>(expectEvents = false)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,21 @@
|
|||
/*
|
||||
* Copyright (c) 2023 New Vector Ltd
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package io.element.android.libraries.architecture.coverage
|
||||
|
||||
@Retention(AnnotationRetention.RUNTIME)
|
||||
@Target(AnnotationTarget.FUNCTION, AnnotationTarget.CLASS)
|
||||
annotation class ExcludeFromCoverage
|
||||
|
|
@ -171,11 +171,7 @@ fun AnnotatedString.linkify(linkStyle: SpanStyle): AnnotatedString {
|
|||
|
||||
@Preview(group = PreviewGroup.Text)
|
||||
@Composable
|
||||
internal fun ClickableLinkTextPreview() =
|
||||
ElementThemedPreview { ContentToPreview() }
|
||||
|
||||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
internal fun ClickableLinkTextPreview() = ElementThemedPreview {
|
||||
ClickableLinkText(
|
||||
annotatedString = AnnotatedString("Hello", ParagraphStyle()),
|
||||
linkAnnotationTag = "",
|
||||
|
|
|
|||
|
|
@ -54,10 +54,7 @@ fun LabelledCheckbox(
|
|||
|
||||
@Preview(group = PreviewGroup.Toggles)
|
||||
@Composable
|
||||
internal fun LabelledCheckboxPreview() = ElementThemedPreview { ContentToPreview() }
|
||||
|
||||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
internal fun LabelledCheckboxPreview() = ElementThemedPreview {
|
||||
LabelledCheckbox(
|
||||
checked = true,
|
||||
onCheckedChange = {},
|
||||
|
|
|
|||
|
|
@ -141,10 +141,7 @@ private fun ProgressDialogContent(
|
|||
|
||||
@Preview(group = PreviewGroup.Dialogs)
|
||||
@Composable
|
||||
internal fun ProgressDialogPreview() = ElementThemedPreview { ContentToPreview() }
|
||||
|
||||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
internal fun ProgressDialogPreview() = ElementThemedPreview {
|
||||
DialogPreview {
|
||||
ProgressDialogContent(text = "test dialog content", isCancellable = true)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -68,10 +68,7 @@ private fun PreferenceCategoryTitle(title: String, modifier: Modifier = Modifier
|
|||
|
||||
@Preview(group = PreviewGroup.Preferences)
|
||||
@Composable
|
||||
internal fun PreferenceCategoryPreview() = ElementThemedPreview { ContentToPreview() }
|
||||
|
||||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
internal fun PreferenceCategoryPreview() = ElementThemedPreview {
|
||||
PreferenceCategory(
|
||||
title = "Category title",
|
||||
) {
|
||||
|
|
|
|||
|
|
@ -95,10 +95,7 @@ fun PreferenceCheckbox(
|
|||
|
||||
@Preview(group = PreviewGroup.Preferences)
|
||||
@Composable
|
||||
internal fun PreferenceCheckboxPreview() = ElementThemedPreview { ContentToPreview() }
|
||||
|
||||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
internal fun PreferenceCheckboxPreview() = ElementThemedPreview {
|
||||
Column {
|
||||
PreferenceCheckbox(
|
||||
title = "Checkbox",
|
||||
|
|
|
|||
|
|
@ -36,9 +36,6 @@ fun PreferenceDivider(
|
|||
|
||||
@Preview(group = PreviewGroup.Preferences)
|
||||
@Composable
|
||||
internal fun PreferenceDividerPreview() = ElementThemedPreview { ContentToPreview() }
|
||||
|
||||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
internal fun PreferenceDividerPreview() = ElementThemedPreview {
|
||||
PreferenceDivider()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,10 +50,7 @@ fun PreferenceRow(
|
|||
|
||||
@Preview(group = PreviewGroup.Preferences)
|
||||
@Composable
|
||||
internal fun PreferenceRowPreview() = ElementThemedPreview { ContentToPreview() }
|
||||
|
||||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
internal fun PreferenceRowPreview() = ElementThemedPreview {
|
||||
PreferenceRow {
|
||||
Text(text = "Content")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -90,10 +90,7 @@ fun PreferenceSlide(
|
|||
|
||||
@Preview(group = PreviewGroup.Preferences)
|
||||
@Composable
|
||||
internal fun PreferenceSlidePreview() = ElementThemedPreview { ContentToPreview() }
|
||||
|
||||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
internal fun PreferenceSlidePreview() = ElementThemedPreview {
|
||||
PreferenceSlide(
|
||||
iconResourceId = CompoundDrawables.ic_user_profile,
|
||||
title = "Slide",
|
||||
|
|
|
|||
|
|
@ -102,10 +102,7 @@ fun PreferenceSwitch(
|
|||
|
||||
@Preview(group = PreviewGroup.Preferences)
|
||||
@Composable
|
||||
internal fun PreferenceSwitchPreview() = ElementThemedPreview { ContentToPreview() }
|
||||
|
||||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
internal fun PreferenceSwitchPreview() = ElementThemedPreview {
|
||||
PreferenceSwitch(
|
||||
title = "Switch",
|
||||
subtitle = "Subtitle Switch",
|
||||
|
|
|
|||
|
|
@ -90,10 +90,7 @@ private fun compoundErrorCheckBoxColors(): CheckboxColors {
|
|||
|
||||
@Preview(group = PreviewGroup.Toggles)
|
||||
@Composable
|
||||
internal fun CheckboxesPreview() = ElementThemedPreview(vertical = false) { ContentToPreview() }
|
||||
|
||||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
internal fun CheckboxesPreview() = ElementThemedPreview(vertical = false) {
|
||||
Column {
|
||||
// Unchecked
|
||||
Row(horizontalArrangement = Arrangement.spacedBy(6.dp)) {
|
||||
|
|
|
|||
|
|
@ -69,10 +69,7 @@ fun CircularProgressIndicator(
|
|||
|
||||
@Preview(group = PreviewGroup.Progress)
|
||||
@Composable
|
||||
internal fun CircularProgressIndicatorPreview() = ElementThemedPreview(vertical = false) { ContentToPreview() }
|
||||
|
||||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
internal fun CircularProgressIndicatorPreview() = ElementThemedPreview(vertical = false) {
|
||||
Column(verticalArrangement = Arrangement.spacedBy(4.dp)) {
|
||||
// Indeterminate progress
|
||||
CircularProgressIndicator()
|
||||
|
|
|
|||
|
|
@ -78,10 +78,7 @@ internal object DropDownMenuItemDefaults {
|
|||
|
||||
@Preview(group = PreviewGroup.Menus)
|
||||
@Composable
|
||||
internal fun DropdownMenuItemPreview() = ElementThemedPreview { ContentToPreview() }
|
||||
|
||||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
internal fun DropdownMenuItemPreview() = ElementThemedPreview {
|
||||
Column {
|
||||
DropdownMenuItem(
|
||||
text = { Text(text = "Item") },
|
||||
|
|
|
|||
|
|
@ -60,11 +60,7 @@ fun FloatingActionButton(
|
|||
|
||||
@Preview(group = PreviewGroup.FABs)
|
||||
@Composable
|
||||
internal fun FloatingActionButtonPreview() =
|
||||
ElementThemedPreview { ContentToPreview() }
|
||||
|
||||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
internal fun FloatingActionButtonPreview() = ElementThemedPreview {
|
||||
Box(modifier = Modifier.padding(8.dp)) {
|
||||
FloatingActionButton(onClick = {}) {
|
||||
Icon(imageVector = CompoundIcons.Close, contentDescription = null)
|
||||
|
|
|
|||
|
|
@ -50,11 +50,6 @@ object ElementDividerDefaults {
|
|||
@Composable
|
||||
internal fun HorizontalDividerPreview() = ElementThemedPreview {
|
||||
Box(Modifier.padding(vertical = 10.dp), contentAlignment = Alignment.Center) {
|
||||
ContentToPreview()
|
||||
HorizontalDivider()
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
HorizontalDivider()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -140,10 +140,6 @@ fun Icon(
|
|||
|
||||
@Preview(group = PreviewGroup.Icons)
|
||||
@Composable
|
||||
internal fun IconImageVectorPreview() =
|
||||
ElementThemedPreview { ContentToPreview() }
|
||||
|
||||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
internal fun IconImageVectorPreview() = ElementThemedPreview {
|
||||
Icon(imageVector = CompoundIcons.Close, contentDescription = null)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -58,11 +58,7 @@ fun IconButton(
|
|||
|
||||
@Preview(group = PreviewGroup.Buttons)
|
||||
@Composable
|
||||
internal fun IconButtonPreview() =
|
||||
ElementThemedPreview { ContentToPreview() }
|
||||
|
||||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
internal fun IconButtonPreview() = ElementThemedPreview {
|
||||
Column {
|
||||
CompositionLocalProvider(LocalContentColor provides ElementTheme.colors.iconPrimary) {
|
||||
Row {
|
||||
|
|
|
|||
|
|
@ -59,10 +59,7 @@ fun IconToggleButton(
|
|||
|
||||
@Preview(group = PreviewGroup.Toggles)
|
||||
@Composable
|
||||
internal fun IconToggleButtonPreview() = ElementThemedPreview(vertical = false) { ContentToPreview() }
|
||||
|
||||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
internal fun IconToggleButtonPreview() = ElementThemedPreview(vertical = false) {
|
||||
var checked by remember { mutableStateOf(false) }
|
||||
Column {
|
||||
Row(horizontalArrangement = Arrangement.spacedBy(6.dp)) {
|
||||
|
|
|
|||
|
|
@ -74,10 +74,7 @@ fun LinearProgressIndicator(
|
|||
|
||||
@Preview(group = PreviewGroup.Progress)
|
||||
@Composable
|
||||
internal fun LinearProgressIndicatorPreview() = ElementThemedPreview(vertical = false) { ContentToPreview() }
|
||||
|
||||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
internal fun LinearProgressIndicatorPreview() = ElementThemedPreview(vertical = false) {
|
||||
Column(verticalArrangement = Arrangement.spacedBy(4.dp)) {
|
||||
// Indeterminate progress
|
||||
LinearProgressIndicator()
|
||||
|
|
|
|||
|
|
@ -59,14 +59,10 @@ fun MediumTopAppBar(
|
|||
)
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Preview(group = PreviewGroup.AppBars)
|
||||
@Composable
|
||||
internal fun MediumTopAppBarPreview() =
|
||||
ElementThemedPreview { ContentToPreview() }
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
internal fun MediumTopAppBarPreview() = ElementThemedPreview {
|
||||
MediumTopAppBar(
|
||||
title = { Text(text = "Title") },
|
||||
navigationIcon = { BackButton(onClick = {}) },
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ import androidx.compose.ui.tooling.preview.Preview
|
|||
import androidx.compose.ui.unit.Dp
|
||||
import androidx.compose.ui.unit.dp
|
||||
import io.element.android.compound.theme.ElementTheme
|
||||
import io.element.android.libraries.architecture.coverage.ExcludeFromCoverage
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviewDark
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviewLight
|
||||
import io.element.android.libraries.designsystem.preview.PreviewGroup
|
||||
|
|
@ -93,6 +94,7 @@ internal fun ModalBottomSheetDarkPreview() =
|
|||
ElementPreviewDark { ContentToPreview() }
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@ExcludeFromCoverage
|
||||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
Box(
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@ import androidx.compose.ui.platform.LocalDensity
|
|||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.Dp
|
||||
import androidx.compose.ui.unit.dp
|
||||
import io.element.android.libraries.architecture.coverage.ExcludeFromCoverage
|
||||
import io.element.android.libraries.designsystem.modifiers.applyIf
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviewDark
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviewLight
|
||||
|
|
@ -110,6 +111,7 @@ internal fun ModalBottomSheetLayoutDarkPreview() =
|
|||
ElementPreviewDark { ContentToPreview() }
|
||||
|
||||
@OptIn(ExperimentalMaterialApi::class)
|
||||
@ExcludeFromCoverage
|
||||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
ModalBottomSheetLayout(
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ import androidx.compose.ui.text.input.TextFieldValue
|
|||
import androidx.compose.ui.text.input.VisualTransformation
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import io.element.android.libraries.architecture.coverage.ExcludeFromCoverage
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviewDark
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviewLight
|
||||
import io.element.android.libraries.designsystem.preview.PreviewGroup
|
||||
|
|
@ -166,6 +167,7 @@ internal fun OutlinedTextFieldsPreview() = ElementPreviewLight { ContentToPrevie
|
|||
internal fun OutlinedTextFieldsDarkPreview() = ElementPreviewDark { ContentToPreview() }
|
||||
|
||||
@Composable
|
||||
@ExcludeFromCoverage
|
||||
private fun ContentToPreview() {
|
||||
Column(modifier = Modifier.padding(4.dp)) {
|
||||
allBooleans.forEach { isError ->
|
||||
|
|
|
|||
|
|
@ -66,10 +66,7 @@ internal fun compoundRadioButtonColors(): RadioButtonColors {
|
|||
|
||||
@Preview(group = PreviewGroup.Toggles)
|
||||
@Composable
|
||||
internal fun RadioButtonPreview() = ElementThemedPreview(vertical = false) { ContentToPreview() }
|
||||
|
||||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
internal fun RadioButtonPreview() = ElementThemedPreview(vertical = false) {
|
||||
var checked by remember { mutableStateOf(false) }
|
||||
Column {
|
||||
Row(horizontalArrangement = Arrangement.spacedBy(6.dp)) {
|
||||
|
|
|
|||
|
|
@ -58,10 +58,7 @@ fun Slider(
|
|||
|
||||
@Preview(group = PreviewGroup.Sliders)
|
||||
@Composable
|
||||
internal fun SlidersPreview() = ElementThemedPreview { ContentToPreview() }
|
||||
|
||||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
internal fun SlidersPreview() = ElementThemedPreview {
|
||||
var value by remember { mutableFloatStateOf(0.33f) }
|
||||
Column {
|
||||
Slider(onValueChange = { value = it }, value = value, enabled = true)
|
||||
|
|
|
|||
|
|
@ -56,11 +56,7 @@ fun Surface(
|
|||
|
||||
@Preview
|
||||
@Composable
|
||||
internal fun SurfacePreview() =
|
||||
ElementThemedPreview { ContentToPreview() }
|
||||
|
||||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
internal fun SurfacePreview() = ElementThemedPreview {
|
||||
Surface {
|
||||
Spacer(modifier = Modifier.size(64.dp))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ import androidx.compose.ui.text.style.TextOverflow
|
|||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import io.element.android.compound.utils.toHrf
|
||||
import io.element.android.libraries.architecture.coverage.ExcludeFromCoverage
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviewDark
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviewLight
|
||||
import io.element.android.libraries.designsystem.preview.PreviewGroup
|
||||
|
|
@ -120,6 +121,7 @@ internal fun TextLightPreview() = ElementPreviewLight { ContentToPreview() }
|
|||
@Composable
|
||||
internal fun TextDarkPreview() = ElementPreviewDark { ContentToPreview() }
|
||||
|
||||
@ExcludeFromCoverage
|
||||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
val colors = mapOf(
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ import androidx.compose.ui.text.input.TextFieldValue
|
|||
import androidx.compose.ui.text.input.VisualTransformation
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import io.element.android.libraries.architecture.coverage.ExcludeFromCoverage
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviewDark
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviewLight
|
||||
import io.element.android.libraries.designsystem.preview.PreviewGroup
|
||||
|
|
@ -154,6 +155,7 @@ internal fun TextFieldLightPreview() =
|
|||
internal fun TextFieldDarkPreview() =
|
||||
ElementPreviewDark { ContentToPreview() }
|
||||
|
||||
@ExcludeFromCoverage
|
||||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
Column(modifier = Modifier.padding(4.dp)) {
|
||||
|
|
|
|||
|
|
@ -59,14 +59,10 @@ fun TopAppBar(
|
|||
)
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Preview(group = PreviewGroup.AppBars)
|
||||
@Composable
|
||||
internal fun TopAppBarPreview() =
|
||||
ElementThemedPreview { ContentToPreview() }
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
internal fun TopAppBarPreview() = ElementThemedPreview {
|
||||
TopAppBar(
|
||||
title = { Text(text = "Title") },
|
||||
navigationIcon = { BackButton(onClick = {}) },
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ import androidx.compose.material3.MaterialTheme
|
|||
import androidx.compose.material3.rememberDatePickerState
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import io.element.android.libraries.architecture.coverage.ExcludeFromCoverage
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviewDark
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviewLight
|
||||
import io.element.android.libraries.designsystem.preview.PreviewGroup
|
||||
|
|
@ -41,6 +42,7 @@ internal fun DatePickerDarkPreview() {
|
|||
}
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@ExcludeFromCoverage
|
||||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
val state = rememberDatePickerState(
|
||||
|
|
|
|||
|
|
@ -18,8 +18,10 @@ package io.element.android.tests.testutils
|
|||
|
||||
import androidx.activity.ComponentActivity
|
||||
import androidx.annotation.StringRes
|
||||
import androidx.compose.ui.test.SemanticsNodeInteractionsProvider
|
||||
import androidx.compose.ui.test.hasClickAction
|
||||
import androidx.compose.ui.test.hasContentDescription
|
||||
import androidx.compose.ui.test.hasTestTag
|
||||
import androidx.compose.ui.test.hasText
|
||||
import androidx.compose.ui.test.junit4.AndroidComposeTestRule
|
||||
import androidx.compose.ui.test.performClick
|
||||
|
|
@ -36,3 +38,7 @@ fun <R : TestRule> AndroidComposeTestRule<R, ComponentActivity>.pressBack() {
|
|||
val text = activity.getString(CommonStrings.action_back)
|
||||
onNode(hasContentDescription(text)).performClick()
|
||||
}
|
||||
|
||||
fun SemanticsNodeInteractionsProvider.pressTag(tag: String) {
|
||||
onNode(hasTestTag(tag)).performClick()
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue