Merge pull request #2732 from element-hq/feature/bma/moreKonsistTest

More konsist test
This commit is contained in:
Benoit Marty 2024-04-19 18:00:31 +02:00 committed by GitHub
commit e7af09d4bb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
226 changed files with 153 additions and 40 deletions

View file

@ -68,7 +68,7 @@ fun RootView(
@PreviewsDayNight
@Composable
internal fun RootPreview(@PreviewParameter(RootStateProvider::class) rootState: RootState) = ElementPreview {
internal fun RootViewPreview(@PreviewParameter(RootStateProvider::class) rootState: RootState) = ElementPreview {
RootView(
state = rootState,
onOpenBugReport = {},

View file

@ -358,7 +358,7 @@ private fun PinUnlockFooter(
@Composable
@PreviewsDayNight
internal fun PinUnlockInAppViewPreview(@PreviewParameter(PinUnlockStateProvider::class) state: PinUnlockState) {
internal fun PinUnlockViewInAppPreview(@PreviewParameter(PinUnlockStateProvider::class) state: PinUnlockState) {
ElementPreview {
PinUnlockView(
state = state,
@ -369,7 +369,7 @@ internal fun PinUnlockInAppViewPreview(@PreviewParameter(PinUnlockStateProvider:
@Composable
@PreviewsDayNight
internal fun PinUnlockDefaultViewPreview(@PreviewParameter(PinUnlockStateProvider::class) state: PinUnlockState) {
internal fun PinUnlockViewPreview(@PreviewParameter(PinUnlockStateProvider::class) state: PinUnlockState) {
ElementPreview {
PinUnlockView(
state = state,

View file

@ -141,7 +141,7 @@ private fun RoomMemberSuggestionItemView(
@PreviewsDayNight
@Composable
internal fun MentionSuggestionsPickerView_Preview() {
internal fun MentionSuggestionsPickerViewPreview() {
ElementPreview {
val roomMember = RoomMember(
userId = UserId("@alice:server.org"),

View file

@ -191,7 +191,7 @@ internal fun MessagesReactionButtonPreview(@PreviewParameter(AggregatedReactionP
@PreviewsDayNight
@Composable
internal fun MessagesAddReactionButtonPreview() = ElementPreview {
internal fun MessagesReactionButtonAddPreview() = ElementPreview {
MessagesReactionButton(
content = MessagesReactionsButtonContent.Icon(CompoundDrawables.ic_compound_reaction_add),
onClick = {},
@ -201,7 +201,7 @@ internal fun MessagesAddReactionButtonPreview() = ElementPreview {
@PreviewsDayNight
@Composable
internal fun MessagesReactionExtraButtonsPreview() = ElementPreview {
internal fun MessagesReactionButtonExtraPreview() = ElementPreview {
Row {
MessagesReactionButton(
content = MessagesReactionsButtonContent.Text("12 more"),

View file

@ -207,7 +207,7 @@ private fun computeReceiptDescription(receipts: ImmutableList<ReadReceiptData>):
@PreviewsDayNight
@Composable
internal fun TimelineItemReactionsViewPreview(
internal fun TimelineItemReadReceiptViewPreview(
@PreviewParameter(ReadReceiptViewStateProvider::class) state: ReadReceiptViewState,
) = ElementPreview {
TimelineItemReadReceiptView(

View file

@ -202,7 +202,7 @@ private fun OnBoardingButtons(
@PreviewsDayNight
@Composable
internal fun OnBoardingScreenPreview(
internal fun OnBoardingViewPreview(
@PreviewParameter(OnBoardingStateProvider::class) state: OnBoardingState
) = ElementPreview {
OnBoardingView(

View file

@ -132,7 +132,7 @@ internal fun PollAnswerView(
@PreviewsDayNight
@Composable
internal fun PollAnswerDisclosedNotSelectedPreview() = ElementPreview {
internal fun PollAnswerViewDisclosedNotSelectedPreview() = ElementPreview {
PollAnswerView(
answerItem = aPollAnswerItem(showVotes = true, isSelected = false),
)
@ -140,7 +140,7 @@ internal fun PollAnswerDisclosedNotSelectedPreview() = ElementPreview {
@PreviewsDayNight
@Composable
internal fun PollAnswerDisclosedSelectedPreview() = ElementPreview {
internal fun PollAnswerViewDisclosedSelectedPreview() = ElementPreview {
PollAnswerView(
answerItem = aPollAnswerItem(showVotes = true, isSelected = true),
)
@ -148,7 +148,7 @@ internal fun PollAnswerDisclosedSelectedPreview() = ElementPreview {
@PreviewsDayNight
@Composable
internal fun PollAnswerUndisclosedNotSelectedPreview() = ElementPreview {
internal fun PollAnswerViewUndisclosedNotSelectedPreview() = ElementPreview {
PollAnswerView(
answerItem = aPollAnswerItem(showVotes = false, isSelected = false),
)
@ -156,7 +156,7 @@ internal fun PollAnswerUndisclosedNotSelectedPreview() = ElementPreview {
@PreviewsDayNight
@Composable
internal fun PollAnswerUndisclosedSelectedPreview() = ElementPreview {
internal fun PollAnswerViewUndisclosedSelectedPreview() = ElementPreview {
PollAnswerView(
answerItem = aPollAnswerItem(showVotes = false, isSelected = true),
)
@ -164,7 +164,7 @@ internal fun PollAnswerUndisclosedSelectedPreview() = ElementPreview {
@PreviewsDayNight
@Composable
internal fun PollAnswerEndedWinnerNotSelectedPreview() = ElementPreview {
internal fun PollAnswerViewEndedWinnerNotSelectedPreview() = ElementPreview {
PollAnswerView(
answerItem = aPollAnswerItem(showVotes = true, isSelected = false, isEnabled = false, isWinner = true),
)
@ -172,7 +172,7 @@ internal fun PollAnswerEndedWinnerNotSelectedPreview() = ElementPreview {
@PreviewsDayNight
@Composable
internal fun PollAnswerEndedWinnerSelectedPreview() = ElementPreview {
internal fun PollAnswerViewEndedWinnerSelectedPreview() = ElementPreview {
PollAnswerView(
answerItem = aPollAnswerItem(showVotes = true, isSelected = true, isEnabled = false, isWinner = true),
)
@ -180,7 +180,7 @@ internal fun PollAnswerEndedWinnerSelectedPreview() = ElementPreview {
@PreviewsDayNight
@Composable
internal fun PollAnswerEndedSelectedPreview() = ElementPreview {
internal fun PollAnswerViewEndedSelectedPreview() = ElementPreview {
PollAnswerView(
answerItem = aPollAnswerItem(showVotes = true, isSelected = true, isEnabled = false, isWinner = false),
)

View file

@ -241,7 +241,7 @@ private fun CreatorView(
@PreviewsDayNight
@Composable
internal fun PollContentUndisclosedPreview() = ElementPreview {
internal fun PollContentViewUndisclosedPreview() = ElementPreview {
PollContentView(
eventId = EventId("\$anEventId"),
question = "What type of food should we have at the party?",
@ -258,7 +258,7 @@ internal fun PollContentUndisclosedPreview() = ElementPreview {
@PreviewsDayNight
@Composable
internal fun PollContentDisclosedPreview() = ElementPreview {
internal fun PollContentViewDisclosedPreview() = ElementPreview {
PollContentView(
eventId = EventId("\$anEventId"),
question = "What type of food should we have at the party?",
@ -275,7 +275,7 @@ internal fun PollContentDisclosedPreview() = ElementPreview {
@PreviewsDayNight
@Composable
internal fun PollContentEndedPreview() = ElementPreview {
internal fun PollContentViewEndedPreview() = ElementPreview {
PollContentView(
eventId = EventId("\$anEventId"),
question = "What type of food should we have at the party?",
@ -292,7 +292,7 @@ internal fun PollContentEndedPreview() = ElementPreview {
@PreviewsDayNight
@Composable
internal fun PollContentCreatorEditablePreview() = ElementPreview {
internal fun PollContentViewCreatorEditablePreview() = ElementPreview {
PollContentView(
eventId = EventId("\$anEventId"),
question = "What type of food should we have at the party?",
@ -309,7 +309,7 @@ internal fun PollContentCreatorEditablePreview() = ElementPreview {
@PreviewsDayNight
@Composable
internal fun PollContentCreatorPreview() = ElementPreview {
internal fun PollContentViewCreatorPreview() = ElementPreview {
PollContentView(
eventId = EventId("\$anEventId"),
question = "What type of food should we have at the party?",
@ -326,7 +326,7 @@ internal fun PollContentCreatorPreview() = ElementPreview {
@PreviewsDayNight
@Composable
internal fun PollContentCreatorEndedPreview() = ElementPreview {
internal fun PollContentViewCreatorEndedPreview() = ElementPreview {
PollContentView(
eventId = EventId("\$anEventId"),
question = "What type of food should we have at the party?",

View file

@ -225,7 +225,7 @@ private fun RoomInviteMembersSearchBar(
@PreviewsDayNight
@Composable
internal fun RoomInviteMembersPreview(@PreviewParameter(RoomInviteMembersStateProvider::class) state: RoomInviteMembersState) = ElementPreview {
internal fun RoomInviteMembersViewPreview(@PreviewParameter(RoomInviteMembersStateProvider::class) state: RoomInviteMembersState) = ElementPreview {
RoomInviteMembersView(
state = state,
onBackPressed = {},

View file

@ -357,7 +357,7 @@ private fun RoomMemberSearchBar(
@PreviewsDayNight
@Composable
internal fun RoomMemberListPreview(@PreviewParameter(RoomMemberListStateProvider::class) state: RoomMemberListState) = ElementPreview {
internal fun RoomMemberListViewPreview(@PreviewParameter(RoomMemberListStateProvider::class) state: RoomMemberListState) = ElementPreview {
RoomMemberListView(
state = state,
navigator = object : RoomMemberListNavigator {},
@ -366,7 +366,7 @@ internal fun RoomMemberListPreview(@PreviewParameter(RoomMemberListStateProvider
@PreviewsDayNight
@Composable
internal fun RoomMemberBannedListPreview(@PreviewParameter(RoomMemberListStateBannedProvider::class) state: RoomMemberListState) = ElementPreview {
internal fun RoomMemberListViewBannedPreview(@PreviewParameter(RoomMemberListStateBannedProvider::class) state: RoomMemberListState) = ElementPreview {
RoomMemberListView(
initialSelectedSectionIndex = 1,
state = state,

View file

@ -57,7 +57,7 @@ fun RoomNotificationSettingsOption(
@PreviewsDayNight
@Composable
internal fun RoomPrivacyOptionPreview() = ElementPreview {
internal fun RoomNotificationSettingsOptionPreview() = ElementPreview {
Column {
for ((index, item) in roomNotificationSettingsItems().withIndex()) {
RoomNotificationSettingsOption(

View file

@ -190,7 +190,7 @@ private fun RoomNotificationSettingsTopBar(
@PreviewsDayNight
@Composable
internal fun RoomNotificationSettingsPreview(
internal fun RoomNotificationSettingsViewPreview(
@PreviewParameter(RoomNotificationSettingsStateProvider::class) state: RoomNotificationSettingsState
) = ElementPreview {
RoomNotificationSettingsView(

View file

@ -116,7 +116,7 @@ private fun UserDefinedRoomNotificationSettingsTopBar(
@PreviewsDayNight
@Composable
internal fun UserDefinedRoomNotificationSettingsPreview(
internal fun UserDefinedRoomNotificationSettingsViewPreview(
@PreviewParameter(UserDefinedRoomNotificationSettingsStateProvider::class) state: RoomNotificationSettingsState
) = ElementPreview {
UserDefinedRoomNotificationSettingsView(

View file

@ -203,7 +203,7 @@ private fun ChangeOwnRoleBottomSheet(
@PreviewsDayNight
@Composable
internal fun RolesAndPermissionViewPreview(@PreviewParameter(RolesAndPermissionsStateProvider::class) state: RolesAndPermissionsState) {
internal fun RolesAndPermissionsViewPreview(@PreviewParameter(RolesAndPermissionsStateProvider::class) state: RolesAndPermissionsState) {
ElementPreview {
RolesAndPermissionsView(
state = state,

View file

@ -50,6 +50,6 @@ fun MigrationScreenView(
@Composable
@PreviewsDayNight
internal fun MigrationViewPreview() = ElementPreview {
internal fun MigrationScreenViewPreview() = ElementPreview {
MigrationScreenView(isMigrating = true)
}

View file

@ -234,7 +234,7 @@ private fun RoomDirectorySearchButton(
@PreviewsDayNight
@Composable
internal fun RoomListSearchResultContentPreview(@PreviewParameter(RoomListSearchStateProvider::class) state: RoomListSearchState) = ElementPreview {
internal fun RoomListSearchContentPreview(@PreviewParameter(RoomListSearchStateProvider::class) state: RoomListSearchState) = ElementPreview {
RoomListSearchContent(
state = state,
onRoomClicked = {},

View file

@ -108,7 +108,7 @@ fun PageTitle(
@PreviewsDayNight
@Composable
internal fun TitleWithIconFullPreview(@PreviewParameter(BigIconStylePreviewProvider::class) style: BigIcon.Style) {
internal fun PageTitleWithIconFullPreview(@PreviewParameter(BigIconStylePreviewProvider::class) style: BigIcon.Style) {
ElementPreview {
PageTitle(
modifier = Modifier.padding(top = 24.dp),
@ -124,7 +124,7 @@ internal fun TitleWithIconFullPreview(@PreviewParameter(BigIconStylePreviewProvi
@PreviewsDayNight
@Composable
internal fun TitleWithIconMinimalPreview() {
internal fun PageTitleWithIconMinimalPreview() {
ElementPreview {
PageTitle(
modifier = Modifier.padding(top = 24.dp),

View file

@ -75,7 +75,7 @@ internal fun AsyncIndicatorView(
@PreviewsDayNight
@Composable
internal fun AsyncIndicatorView_Loading_Preview() {
internal fun AsyncIndicatorLoadingPreview() {
ElementPreview {
AsyncIndicator.Loading(text = "Loading")
}
@ -83,7 +83,7 @@ internal fun AsyncIndicatorView_Loading_Preview() {
@PreviewsDayNight
@Composable
internal fun AsyncIndicatorView_Failed_Preview() {
internal fun AsyncIndicatorFailurePreview() {
ElementPreview {
AsyncIndicator.Failure(text = "Failed")
}

View file

@ -31,7 +31,7 @@ import io.element.android.libraries.designsystem.theme.components.Text
@PreviewsDayNight
@Composable
internal fun UserAvatarPreview() = ElementPreview {
internal fun UserAvatarColorsPreview() = ElementPreview {
Column(
modifier = Modifier.padding(8.dp),
verticalArrangement = Arrangement.spacedBy(8.dp),

View file

@ -128,7 +128,7 @@ internal fun GradientFloatingActionButtonPreview() {
@PreviewsDayNight
@Composable
internal fun GradientSendButtonPreview() {
internal fun GradientFloatingActionButtonCircleShapePreview() {
ElementPreview {
Box(modifier = Modifier.padding(20.dp)) {
GradientFloatingActionButton(

View file

@ -98,7 +98,7 @@ private fun PreferenceTopAppBar(
@PreviewsDayNight
@Composable
internal fun PreferenceViewPreview() = ElementPreview {
internal fun PreferencePagePreview() = ElementPreview {
PreferencePage(
title = "Preference screen",
onBackPressed = {},

View file

@ -64,7 +64,7 @@ fun WithRulers(
@PreviewsDayNight
@Composable
internal fun WithRulerPreview() = ElementPreview {
internal fun WithRulersPreview() = ElementPreview {
WithRulers(xRulersOffset = 20.dp, yRulersOffset = 15.dp) {
OutlinedButton(
text = "A Button with rulers on it!",

View file

@ -132,7 +132,7 @@ fun SelectedUsersRowList(
@PreviewsDayNight
@Composable
internal fun SelectedUsersListPreview() = ElementPreview {
internal fun SelectedUsersRowListPreview() = ElementPreview {
Column(verticalArrangement = Arrangement.spacedBy(8.dp)) {
// Two users that will be visible with no scrolling
SelectedUsersRowList(

View file

@ -89,7 +89,7 @@ internal fun FormattingOption(
@PreviewsDayNight
@Composable
internal fun FormattingButtonPreview() = ElementPreview {
internal fun FormattingOptionPreview() = ElementPreview {
Row {
FormattingOption(
state = FormattingOptionState.Default,

View file

@ -0,0 +1,36 @@
/*
* Copyright (c) 2024 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.tests.konsist
import com.lemonappdev.konsist.api.Konsist
import com.lemonappdev.konsist.api.verify.assertFalse
import org.junit.Test
class KonsistImportTest {
@Test
fun `Functions with '@VisibleForTesting' annotation should use 'androidx' version`() {
Konsist
.scopeFromProject()
.imports
.assertFalse(
additionalMessage = "Please use 'androidx.annotation.VisibleForTesting' instead of " +
"'org.jetbrains.annotations.VisibleForTesting' (project convention).",
) {
it.name == "org.jetbrains.annotations.VisibleForTesting"
}
}
}

View file

@ -19,6 +19,7 @@ package io.element.android.tests.konsist
import androidx.compose.ui.tooling.preview.PreviewLightDark
import com.lemonappdev.konsist.api.Konsist
import com.lemonappdev.konsist.api.ext.list.withAllAnnotationsOf
import com.lemonappdev.konsist.api.ext.list.withoutName
import com.lemonappdev.konsist.api.verify.assertEmpty
import com.lemonappdev.konsist.api.verify.assertTrue
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
@ -60,6 +61,82 @@ class KonsistPreviewTest {
}
}
@Test
fun `Functions with '@PreviewsDayNight' have correct name`() {
Konsist
.scopeFromProject()
.functions()
.withAllAnnotationsOf(PreviewsDayNight::class)
.withoutName(
"AsyncIndicatorFailurePreview",
"AsyncIndicatorLoadingPreview",
"BloomInitialsPreview",
"BloomPreview",
"ColorAliasesPreview",
"DefaultRoomListTopBarWithIndicatorPreview",
"GradientFloatingActionButtonCircleShapePreview",
"IconTitleSubtitleMoleculeWithResIconPreview",
"IconsCompoundPreview",
"IconsOtherPreview",
"MentionSpanPreview",
"MessageComposerViewVoicePreview",
"MessagesReactionButtonAddPreview",
"MessagesReactionButtonExtraPreview",
"MessagesViewWithTypingPreview",
"PageTitleWithIconFullPreview",
"PageTitleWithIconMinimalPreview",
"PendingMemberRowWithLongNamePreview",
"PinUnlockViewInAppPreview",
"PollAnswerViewDisclosedNotSelectedPreview",
"PollAnswerViewDisclosedSelectedPreview",
"PollAnswerViewEndedSelectedPreview",
"PollAnswerViewEndedWinnerNotSelectedPreview",
"PollAnswerViewEndedWinnerSelectedPreview",
"PollAnswerViewUndisclosedNotSelectedPreview",
"PollAnswerViewUndisclosedSelectedPreview",
"PollContentViewCreatorEditablePreview",
"PollContentViewCreatorEndedPreview",
"PollContentViewCreatorPreview",
"PollContentViewDisclosedPreview",
"PollContentViewEndedPreview",
"PollContentViewUndisclosedPreview",
"ReadReceiptBottomSheetPreview",
"RoomListModalBottomSheetContentForDmPreview",
"RoomMemberListViewBannedPreview",
"SasEmojisPreview",
"SecureBackupSetupViewChangePreview",
"SelectedUserCannotRemovePreview",
"TextComposerEditPreview",
"TextComposerFormattingPreview",
"TextComposerLinkDialogCreateLinkPreview",
"TextComposerLinkDialogCreateLinkWithoutTextPreview",
"TextComposerLinkDialogEditLinkPreview",
"TextComposerReplyPreview",
"TextComposerSimplePreview",
"TextComposerVoicePreview",
"TimelineImageWithCaptionRowPreview",
"TimelineItemEventRowForDirectRoomPreview",
"TimelineItemEventRowTimestampPreview",
"TimelineItemEventRowWithManyReactionsPreview",
"TimelineItemEventRowWithRRPreview",
"TimelineItemEventRowWithReplyPreview",
"TimelineItemGroupedEventsRowContentCollapsePreview",
"TimelineItemGroupedEventsRowContentExpandedPreview",
"TimelineItemVoiceViewUnifiedPreview",
"TimelineVideoWithCaptionRowPreview",
"UserAvatarColorsPreview",
)
.assertTrue(
additionalMessage = "Functions for Preview should be named like this: <ViewUnderPreview>Preview. " +
"Exception can be added to the test, for multiple Previews of the same view",
) {
val testedView = it.name.removeSuffix("Preview")
it.text.contains("$testedView(") ||
it.text.contains("$testedView {") ||
it.text.contains("ContentToPreview(")
}
}
@Test
fun `Ensure that '@PreviewLightDark' is not used`() {
Konsist

Some files were not shown because too many files have changed in this diff Show more