Skip to content

Commit 4dde8c5

Browse files
committed
Update tests
1 parent 1a66b44 commit 4dde8c5

File tree

1 file changed

+4
-135
lines changed

1 file changed

+4
-135
lines changed

features/space/impl/src/test/kotlin/io/element/android/features/space/impl/leave/LeaveSpacePresenterTest.kt

Lines changed: 4 additions & 135 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,12 @@ import io.element.android.features.space.api.SpaceEntryPoint
1414
import io.element.android.libraries.architecture.AsyncAction
1515
import io.element.android.libraries.architecture.AsyncData
1616
import io.element.android.libraries.matrix.api.MatrixClient
17-
import io.element.android.libraries.matrix.test.AN_EXCEPTION
1817
import io.element.android.libraries.matrix.test.A_ROOM_ID
1918
import io.element.android.libraries.matrix.test.A_SPACE_NAME
2019
import io.element.android.libraries.matrix.test.FakeMatrixClient
21-
import io.element.android.libraries.matrix.test.room.FakeBaseRoom
2220
import io.element.android.libraries.matrix.test.spaces.FakeSpaceRoomList
2321
import io.element.android.libraries.matrix.test.spaces.FakeSpaceService
2422
import io.element.android.libraries.previewutils.room.aSpaceRoom
25-
import io.element.android.tests.testutils.lambda.lambdaRecorder
2623
import io.element.android.tests.testutils.test
2724
import kotlinx.coroutines.ExperimentalCoroutinesApi
2825
import kotlinx.coroutines.test.advanceUntilIdle
@@ -32,27 +29,21 @@ import org.junit.Test
3229
class LeaveSpacePresenterTest {
3330
@Test
3431
fun `present - initial state`() = runTest {
35-
val paginateResult = lambdaRecorder<Result<Unit>> {
36-
Result.success(Unit)
37-
}
3832
val presenter = createLeaveSpacePresenter(
3933
matrixClient = FakeMatrixClient(
4034
spaceService = FakeSpaceService(
4135
spaceRoomListResult = {
42-
FakeSpaceRoomList(
43-
paginateResult = paginateResult,
44-
)
36+
FakeSpaceRoomList()
4537
},
4638
),
4739
),
4840
)
4941
presenter.test {
5042
val state = awaitItem()
5143
assertThat(state.spaceName).isNull()
52-
assertThat(state.selectableSpaceRooms).isEqualTo(AsyncAction.Uninitialized)
44+
assertThat(state.selectableSpaceRooms).isEqualTo(AsyncData.Uninitialized)
5345
assertThat(state.leaveSpaceAction).isEqualTo(AsyncAction.Uninitialized)
54-
advanceUntilIdle()
55-
paginateResult.assertions().isCalledOnce()
46+
skipItems(1)
5647
}
5748
}
5849

@@ -74,133 +65,11 @@ class LeaveSpacePresenterTest {
7465
name = A_SPACE_NAME
7566
)
7667
fakeSpaceRoomList.emitCurrentSpace(aSpace)
68+
skipItems(1)
7769
assertThat(awaitItem().spaceName).isEqualTo(A_SPACE_NAME)
7870
}
7971
}
8072

81-
@Test
82-
fun `present - leave space and cancel`() = runTest {
83-
val fakeSpaceRoomList = FakeSpaceRoomList(
84-
paginateResult = { Result.success(Unit) },
85-
)
86-
val presenter = createLeaveSpacePresenter(
87-
matrixClient = FakeMatrixClient(
88-
spaceService = FakeSpaceService(
89-
spaceRoomListResult = { fakeSpaceRoomList },
90-
),
91-
),
92-
)
93-
presenter.test {
94-
val state = awaitItem()
95-
advanceUntilIdle()
96-
assertThat(state.leaveSpaceAction).isEqualTo(AsyncAction.Uninitialized)
97-
state.eventSink(LeaveSpaceEvents.LeaveSpace)
98-
val stateAfterStarting = awaitItem()
99-
assertThat(stateAfterStarting.leaveSpaceAction).isInstanceOf(LeaveSpaceState::class.java)
100-
val shown = stateAfterStarting.leaveSpaceAction as LeaveSpaceState
101-
assertThat(shown.spaceName).isNull()
102-
assertThat(shown.selectableSpaceRooms).isInstanceOf(AsyncData.Loading::class.java)
103-
val stateAfterLoading = awaitItem()
104-
val shownLoaded = stateAfterLoading.leaveSpaceAction as LeaveSpaceState
105-
assertThat(shownLoaded.selectableSpaceRooms.dataOrNull()!!).isEmpty()
106-
stateAfterLoading.eventSink(LeaveSpaceEvents.CloseError)
107-
val stateAfterCancel = awaitItem()
108-
assertThat(stateAfterCancel.leaveSpaceAction).isEqualTo(AsyncAction.Uninitialized)
109-
}
110-
}
111-
112-
@Test
113-
fun `present - leave space and confirm`() = runTest {
114-
val fakeSpaceRoomList = FakeSpaceRoomList(
115-
paginateResult = { Result.success(Unit) },
116-
)
117-
val leaveRoomLambda = lambdaRecorder<Result<Unit>> {
118-
Result.success(Unit)
119-
}
120-
val presenter = createLeaveSpacePresenter(
121-
matrixClient = FakeMatrixClient(
122-
spaceService = FakeSpaceService(
123-
spaceRoomListResult = { fakeSpaceRoomList },
124-
),
125-
).apply {
126-
givenGetRoomResult(
127-
roomId = A_ROOM_ID,
128-
result = FakeBaseRoom(
129-
leaveRoomLambda = leaveRoomLambda,
130-
)
131-
)
132-
},
133-
)
134-
presenter.test {
135-
val state = awaitItem()
136-
advanceUntilIdle()
137-
assertThat(state.leaveSpaceAction).isEqualTo(AsyncAction.Uninitialized)
138-
state.eventSink(LeaveSpaceEvents.LeaveSpace)
139-
val stateAfterStarting = awaitItem()
140-
assertThat(stateAfterStarting.leaveSpaceAction).isInstanceOf(LeaveSpaceState::class.java)
141-
val shown = stateAfterStarting.leaveSpaceAction as LeaveSpaceState
142-
assertThat(shown.spaceName).isNull()
143-
assertThat(shown.selectableSpaceRooms).isInstanceOf(AsyncData.Loading::class.java)
144-
val stateAfterLoading = awaitItem()
145-
val shownLoaded = stateAfterLoading.leaveSpaceAction as LeaveSpaceState
146-
assertThat(shownLoaded.selectableSpaceRooms.dataOrNull()!!).isEmpty()
147-
stateAfterLoading.eventSink(LeaveSpaceEvents.LeaveSpace)
148-
val stateLoading = awaitItem()
149-
assertThat(stateLoading.leaveSpaceAction).isEqualTo(AsyncAction.Loading)
150-
val stateFinal = awaitItem()
151-
assertThat(stateFinal.leaveSpaceAction).isEqualTo(AsyncAction.Success(Unit))
152-
leaveRoomLambda.assertions().isCalledOnce()
153-
}
154-
}
155-
156-
@Test
157-
fun `present - leave space, confirm then failure`() = runTest {
158-
val fakeSpaceRoomList = FakeSpaceRoomList(
159-
paginateResult = { Result.success(Unit) },
160-
)
161-
val leaveRoomLambda = lambdaRecorder<Result<Unit>> {
162-
Result.failure(AN_EXCEPTION)
163-
}
164-
val presenter = createLeaveSpacePresenter(
165-
matrixClient = FakeMatrixClient(
166-
spaceService = FakeSpaceService(
167-
spaceRoomListResult = { fakeSpaceRoomList },
168-
),
169-
).apply {
170-
givenGetRoomResult(
171-
roomId = A_ROOM_ID,
172-
result = FakeBaseRoom(
173-
leaveRoomLambda = leaveRoomLambda,
174-
)
175-
)
176-
},
177-
)
178-
presenter.test {
179-
val state = awaitItem()
180-
advanceUntilIdle()
181-
assertThat(state.leaveSpaceAction).isEqualTo(AsyncAction.Uninitialized)
182-
state.eventSink(LeaveSpaceEvents.LeaveSpace)
183-
val stateAfterStarting = awaitItem()
184-
assertThat(stateAfterStarting.leaveSpaceAction).isInstanceOf(LeaveSpaceState::class.java)
185-
val shown = stateAfterStarting.leaveSpaceAction as LeaveSpaceState
186-
assertThat(shown.spaceName).isNull()
187-
assertThat(shown.selectableSpaceRooms).isInstanceOf(AsyncData.Loading::class.java)
188-
val stateAfterLoading = awaitItem()
189-
val shownLoaded = stateAfterLoading.leaveSpaceAction as LeaveSpaceState
190-
assertThat(shownLoaded.selectableSpaceRooms.dataOrNull()!!).isEmpty()
191-
stateAfterLoading.eventSink(LeaveSpaceEvents.LeaveSpace)
192-
val stateLoading = awaitItem()
193-
assertThat(stateLoading.leaveSpaceAction).isEqualTo(AsyncAction.Loading)
194-
val stateError = awaitItem()
195-
assertThat(stateError.leaveSpaceAction).isEqualTo(AsyncAction.Failure(AN_EXCEPTION))
196-
leaveRoomLambda.assertions().isCalledOnce()
197-
// Close error
198-
stateError.eventSink(LeaveSpaceEvents.CloseError)
199-
val stateFinal = awaitItem()
200-
assertThat(stateFinal.leaveSpaceAction).isEqualTo(AsyncAction.Uninitialized)
201-
}
202-
}
203-
20473
private fun createLeaveSpacePresenter(
20574
inputs: SpaceEntryPoint.Inputs = SpaceEntryPoint.Inputs(A_ROOM_ID),
20675
matrixClient: MatrixClient = FakeMatrixClient(),

0 commit comments

Comments
 (0)