mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-03 16:10:00 +00:00
migration : fix presenter test for fresh/old install
This commit is contained in:
+6
-6
@@ -27,12 +27,9 @@ class MigrationPresenterTest {
|
|||||||
val warmUpRule = WarmUpRule()
|
val warmUpRule = WarmUpRule()
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - no migration should occurs on fresh installation, and last version should be stored`() = runTest {
|
fun `present - run all migrations on fresh installation, and last version should be stored`() = runTest {
|
||||||
val migrations = (1..10).map { order ->
|
val migrations = (1..10).map { order ->
|
||||||
FakeAppMigration(
|
FakeAppMigration(order = order)
|
||||||
order = order,
|
|
||||||
migrateLambda = LambdaNoParamRecorder(ensureNeverCalled = true) { },
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
val store = InMemoryMigrationStore(initialApplicationMigrationVersion = -1)
|
val store = InMemoryMigrationStore(initialApplicationMigrationVersion = -1)
|
||||||
val presenter = createPresenter(
|
val presenter = createPresenter(
|
||||||
@@ -44,12 +41,15 @@ class MigrationPresenterTest {
|
|||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.migrationAction).isEqualTo(AsyncData.Uninitialized)
|
assertThat(initialState.migrationAction).isEqualTo(AsyncData.Uninitialized)
|
||||||
skipItems(1)
|
skipItems(migrations.size)
|
||||||
awaitItem().also { state ->
|
awaitItem().also { state ->
|
||||||
assertThat(state.migrationAction).isEqualTo(AsyncData.Success(Unit))
|
assertThat(state.migrationAction).isEqualTo(AsyncData.Success(Unit))
|
||||||
}
|
}
|
||||||
assertThat(store.applicationMigrationVersion().first()).isEqualTo(migrations.maxOf { it.order })
|
assertThat(store.applicationMigrationVersion().first()).isEqualTo(migrations.maxOf { it.order })
|
||||||
}
|
}
|
||||||
|
for (migration in migrations) {
|
||||||
|
migration.migrateLambda.assertions().isCalledOnce()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
Reference in New Issue
Block a user