Skip to content

Commit 8d2ec9f

Browse files
committed
chore(Matomo): Add test to make sure newTransferDestination classNames aren't changed
1 parent 330eb50 commit 8d2ec9f

File tree

2 files changed

+45
-27
lines changed

2 files changed

+45
-27
lines changed

app/src/main/java/com/infomaniak/swisstransfer/ui/navigation/NavigationDestination.kt

+24-24
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ sealed class MainNavigation(override val matomoValue: String) : NavigationDestin
8484
private const val sentDestinationName = "SentDestination"
8585
private const val receivedDestinationName = "ReceivedDestination"
8686
private const val settingsDestinationName = "SettingsDestination"
87-
val destinationsNames = listOf(
87+
val mainDestinationsNames = listOf(
8888
sentDestinationName,
8989
receivedDestinationName,
9090
settingsDestinationName,
@@ -93,10 +93,10 @@ sealed class MainNavigation(override val matomoValue: String) : NavigationDestin
9393
fun NavBackStackEntry.toMainDestination(): MainNavigation? {
9494
return runCatching {
9595
val destinationRoute = destination.route ?: error("Destination route cannot be empty")
96-
when (destinationsNames.firstOrNull { destinationRoute.contains(it) }) {
97-
sentDestinationName -> this.toRoute<SentDestination>()
98-
receivedDestinationName -> this.toRoute<ReceivedDestination>()
99-
settingsDestinationName -> this.toRoute<SettingsDestination>()
96+
when (mainDestinationsNames.firstOrNull { destinationRoute.contains(it) }) {
97+
sentDestinationName -> toRoute<SentDestination>()
98+
receivedDestinationName -> toRoute<ReceivedDestination>()
99+
settingsDestinationName -> toRoute<SettingsDestination>()
100100
else -> error("Destination $destinationRoute is not handled")
101101
}
102102
}.getOrElse { exception ->
@@ -152,33 +152,33 @@ sealed class NewTransferNavigation(override val matomoValue: String) : Navigatio
152152
private val TAG = NewTransferNavigation::class.java.simpleName
153153

154154
private const val importFilesDestinationName = "ImportFilesDestination"
155-
private const val ValidateUserEmailDestinationName = "ValidateUserEmailDestination"
156-
private const val UploadProgressDestinationName = "UploadProgressDestination"
157-
private const val UploadSuccessDestinationName = "UploadSuccessDestination"
158-
private const val UploadErrorDestinationName = "UploadErrorDestination"
159-
private const val UploadIntegrityErrorDestinationName = "UploadIntegrityErrorDestination"
160-
private const val NewTransferFilesDetailsDestinationName = "NewTransferFilesDetailsDestination"
155+
private const val validateUserEmailDestinationName = "ValidateUserEmailDestination"
156+
private const val uploadProgressDestinationName = "UploadProgressDestination"
157+
private const val uploadSuccessDestinationName = "UploadSuccessDestination"
158+
private const val uploadErrorDestinationName = "UploadErrorDestination"
159+
private const val uploadIntegrityErrorDestinationName = "UploadIntegrityErrorDestination"
160+
private const val newTransferFilesDetailsDestinationName = "NewTransferFilesDetailsDestination"
161161
val newTransferDestinationsNames = listOf(
162162
importFilesDestinationName,
163-
ValidateUserEmailDestinationName,
164-
UploadProgressDestinationName,
165-
UploadSuccessDestinationName,
166-
UploadErrorDestinationName,
167-
UploadIntegrityErrorDestinationName,
168-
NewTransferFilesDetailsDestinationName,
163+
validateUserEmailDestinationName,
164+
uploadProgressDestinationName,
165+
uploadSuccessDestinationName,
166+
uploadErrorDestinationName,
167+
uploadIntegrityErrorDestinationName,
168+
newTransferFilesDetailsDestinationName,
169169
)
170170

171171
fun NavBackStackEntry.toNewTransferDestination(): NewTransferNavigation? {
172172
return runCatching {
173173
val destinationRoute = destination.route ?: error("Destination route cannot be empty")
174174
when (newTransferDestinationsNames.firstOrNull(destinationRoute::contains)) {
175-
importFilesDestinationName -> this.toRoute<ImportFilesDestination>()
176-
ValidateUserEmailDestinationName -> this.toRoute<ValidateUserEmailDestination>()
177-
UploadProgressDestinationName -> this.toRoute<UploadProgressDestination>()
178-
UploadSuccessDestinationName -> this.toRoute<UploadSuccessDestination>()
179-
UploadErrorDestinationName -> this.toRoute<UploadErrorDestination>()
180-
UploadIntegrityErrorDestinationName -> this.toRoute<UploadIntegrityErrorDestination>()
181-
NewTransferFilesDetailsDestinationName -> this.toRoute<NewTransferFilesDetailsDestination>()
175+
importFilesDestinationName -> toRoute<ImportFilesDestination>()
176+
validateUserEmailDestinationName -> toRoute<ValidateUserEmailDestination>()
177+
uploadProgressDestinationName -> toRoute<UploadProgressDestination>()
178+
uploadSuccessDestinationName -> toRoute<UploadSuccessDestination>()
179+
uploadErrorDestinationName -> toRoute<UploadErrorDestination>()
180+
uploadIntegrityErrorDestinationName -> toRoute<UploadIntegrityErrorDestination>()
181+
newTransferFilesDetailsDestinationName -> toRoute<NewTransferFilesDetailsDestination>()
182182
else -> error("Destination $destinationRoute is not handled")
183183
}
184184
}.getOrElse { exception ->

app/src/test/java/com/infomaniak/swisstransfer/NavigationDestinationUnitTest.kt

+21-3
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,37 @@
1818
package com.infomaniak.swisstransfer
1919

2020
import com.infomaniak.swisstransfer.ui.navigation.MainNavigation
21+
import com.infomaniak.swisstransfer.ui.navigation.NewTransferNavigation
2122
import org.junit.Assert.assertNotNull
2223
import org.junit.Test
2324

2425
class NavigationDestinationUnitTest {
2526

2627
/**
27-
* Make sure that NavigationDestination names are not changed without changing the `entries` list, because of minification issue.
28+
* Make sure that MainNavigationDestination names are not changed without changing the `entries` list,
29+
* because of minification issue.
2830
*/
2931
@Test
30-
fun check_destinations_names_are_correct() {
31-
val destinationsNames = MainNavigation.Companion.destinationsNames
32+
fun check_main_destinations_names_are_correct() {
33+
val destinationsNames = MainNavigation.Companion.mainDestinationsNames
3234
assertNotNull(destinationsNames.find { it == MainNavigation.SentDestination::class.simpleName })
3335
assertNotNull(destinationsNames.find { it == MainNavigation.ReceivedDestination::class.simpleName })
3436
assertNotNull(destinationsNames.find { it == MainNavigation.SettingsDestination::class.simpleName })
3537
}
38+
39+
/**
40+
* Make sure that NewTransferNavigationDestination names are not changed without changing the `entries` list,
41+
* because of minification issue.
42+
*/
43+
@Test
44+
fun check_new_transfer_destinations_names_are_correct() {
45+
val destinationsNames = NewTransferNavigation.Companion.newTransferDestinationsNames
46+
assertNotNull(destinationsNames.find { it == NewTransferNavigation.ImportFilesDestination::class.simpleName })
47+
assertNotNull(destinationsNames.find { it == NewTransferNavigation.ValidateUserEmailDestination::class.simpleName })
48+
assertNotNull(destinationsNames.find { it == NewTransferNavigation.UploadProgressDestination::class.simpleName })
49+
assertNotNull(destinationsNames.find { it == NewTransferNavigation.UploadSuccessDestination::class.simpleName })
50+
assertNotNull(destinationsNames.find { it == NewTransferNavigation.UploadIntegrityErrorDestination::class.simpleName })
51+
assertNotNull(destinationsNames.find { it == NewTransferNavigation.UploadIntegrityErrorDestination::class.simpleName })
52+
assertNotNull(destinationsNames.find { it == NewTransferNavigation.NewTransferFilesDetailsDestination::class.simpleName })
53+
}
3654
}

0 commit comments

Comments
 (0)