|
|
|
|
@@ -35,13 +35,34 @@ class SpaceFiltersPresenterTest {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
fun `present - when feature flag is enabled returns Unselected state initially`() = runTest {
|
|
|
|
|
fun `present - when available filters is empty returns Disabled state`() = runTest {
|
|
|
|
|
val presenter = createSpaceFiltersPresenter(
|
|
|
|
|
featureFlagService = FakeFeatureFlagService(
|
|
|
|
|
initialState = mapOf(FeatureFlags.RoomListSpaceFilters.key to true)
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
presenter.test {
|
|
|
|
|
val state = awaitLastSequentialItem()
|
|
|
|
|
assertThat(state).isEqualTo(SpaceFiltersState.Disabled)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
fun `present - when feature flag is enabled and filters exist returns Unselected state`() = runTest {
|
|
|
|
|
val spaceFilter = aSpaceServiceFilter(displayName = "Test Space")
|
|
|
|
|
val spaceService = FakeSpaceService()
|
|
|
|
|
val matrixClient = FakeMatrixClient(spaceService = spaceService)
|
|
|
|
|
|
|
|
|
|
val presenter = createSpaceFiltersPresenter(
|
|
|
|
|
featureFlagService = FakeFeatureFlagService(
|
|
|
|
|
initialState = mapOf(FeatureFlags.RoomListSpaceFilters.key to true)
|
|
|
|
|
),
|
|
|
|
|
matrixClient = matrixClient,
|
|
|
|
|
)
|
|
|
|
|
presenter.test {
|
|
|
|
|
// Emit filters
|
|
|
|
|
spaceService.emitSpaceFilters(listOf(spaceFilter))
|
|
|
|
|
|
|
|
|
|
val state = awaitLastSequentialItem()
|
|
|
|
|
assertThat(state).isInstanceOf(SpaceFiltersState.Unselected::class.java)
|
|
|
|
|
}
|
|
|
|
|
@@ -49,12 +70,20 @@ class SpaceFiltersPresenterTest {
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
fun `present - ShowFilters event transitions from Unselected to Selecting`() = runTest {
|
|
|
|
|
val spaceFilter = aSpaceServiceFilter(displayName = "Test Space")
|
|
|
|
|
val spaceService = FakeSpaceService()
|
|
|
|
|
val matrixClient = FakeMatrixClient(spaceService = spaceService)
|
|
|
|
|
|
|
|
|
|
val presenter = createSpaceFiltersPresenter(
|
|
|
|
|
featureFlagService = FakeFeatureFlagService(
|
|
|
|
|
initialState = mapOf(FeatureFlags.RoomListSpaceFilters.key to true)
|
|
|
|
|
)
|
|
|
|
|
),
|
|
|
|
|
matrixClient = matrixClient,
|
|
|
|
|
)
|
|
|
|
|
presenter.test {
|
|
|
|
|
// Emit filters first
|
|
|
|
|
spaceService.emitSpaceFilters(listOf(spaceFilter))
|
|
|
|
|
|
|
|
|
|
val unselectedState = awaitLastSequentialItem() as SpaceFiltersState.Unselected
|
|
|
|
|
unselectedState.eventSink(SpaceFiltersEvent.Unselected.ShowFilters)
|
|
|
|
|
|
|
|
|
|
@@ -65,12 +94,20 @@ class SpaceFiltersPresenterTest {
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
fun `present - Cancel event in Selecting state transitions back to Unselected`() = runTest {
|
|
|
|
|
val spaceFilter = aSpaceServiceFilter(displayName = "Test Space")
|
|
|
|
|
val spaceService = FakeSpaceService()
|
|
|
|
|
val matrixClient = FakeMatrixClient(spaceService = spaceService)
|
|
|
|
|
|
|
|
|
|
val presenter = createSpaceFiltersPresenter(
|
|
|
|
|
featureFlagService = FakeFeatureFlagService(
|
|
|
|
|
initialState = mapOf(FeatureFlags.RoomListSpaceFilters.key to true)
|
|
|
|
|
)
|
|
|
|
|
),
|
|
|
|
|
matrixClient = matrixClient,
|
|
|
|
|
)
|
|
|
|
|
presenter.test {
|
|
|
|
|
// Emit filters first
|
|
|
|
|
spaceService.emitSpaceFilters(listOf(spaceFilter))
|
|
|
|
|
|
|
|
|
|
// Start in Unselected
|
|
|
|
|
val unselectedState = awaitLastSequentialItem() as SpaceFiltersState.Unselected
|
|
|
|
|
unselectedState.eventSink(SpaceFiltersEvent.Unselected.ShowFilters)
|
|
|
|
|
@@ -88,12 +125,19 @@ class SpaceFiltersPresenterTest {
|
|
|
|
|
@Test
|
|
|
|
|
fun `present - SelectFilter event in Selecting state transitions to Selected`() = runTest {
|
|
|
|
|
val spaceFilter = aSpaceServiceFilter(displayName = "Test Space")
|
|
|
|
|
val spaceService = FakeSpaceService()
|
|
|
|
|
val matrixClient = FakeMatrixClient(spaceService = spaceService)
|
|
|
|
|
|
|
|
|
|
val presenter = createSpaceFiltersPresenter(
|
|
|
|
|
featureFlagService = FakeFeatureFlagService(
|
|
|
|
|
initialState = mapOf(FeatureFlags.RoomListSpaceFilters.key to true)
|
|
|
|
|
)
|
|
|
|
|
),
|
|
|
|
|
matrixClient = matrixClient,
|
|
|
|
|
)
|
|
|
|
|
presenter.test {
|
|
|
|
|
// Emit filters first
|
|
|
|
|
spaceService.emitSpaceFilters(listOf(spaceFilter))
|
|
|
|
|
|
|
|
|
|
// Start in Unselected
|
|
|
|
|
val unselectedState = awaitLastSequentialItem() as SpaceFiltersState.Unselected
|
|
|
|
|
unselectedState.eventSink(SpaceFiltersEvent.Unselected.ShowFilters)
|
|
|
|
|
@@ -111,12 +155,19 @@ class SpaceFiltersPresenterTest {
|
|
|
|
|
@Test
|
|
|
|
|
fun `present - ClearSelection event in Selected state transitions back to Unselected`() = runTest {
|
|
|
|
|
val spaceFilter = aSpaceServiceFilter(displayName = "Test Space")
|
|
|
|
|
val spaceService = FakeSpaceService()
|
|
|
|
|
val matrixClient = FakeMatrixClient(spaceService = spaceService)
|
|
|
|
|
|
|
|
|
|
val presenter = createSpaceFiltersPresenter(
|
|
|
|
|
featureFlagService = FakeFeatureFlagService(
|
|
|
|
|
initialState = mapOf(FeatureFlags.RoomListSpaceFilters.key to true)
|
|
|
|
|
)
|
|
|
|
|
),
|
|
|
|
|
matrixClient = matrixClient,
|
|
|
|
|
)
|
|
|
|
|
presenter.test {
|
|
|
|
|
// Emit filters first
|
|
|
|
|
spaceService.emitSpaceFilters(listOf(spaceFilter))
|
|
|
|
|
|
|
|
|
|
// Start in Unselected
|
|
|
|
|
val unselectedState = awaitLastSequentialItem() as SpaceFiltersState.Unselected
|
|
|
|
|
unselectedState.eventSink(SpaceFiltersEvent.Unselected.ShowFilters)
|
|
|
|
|
@@ -151,13 +202,13 @@ class SpaceFiltersPresenterTest {
|
|
|
|
|
matrixClient = matrixClient,
|
|
|
|
|
)
|
|
|
|
|
presenter.test {
|
|
|
|
|
// Emit space filters
|
|
|
|
|
spaceService.emitSpaceFilters(spaceFilters)
|
|
|
|
|
|
|
|
|
|
// Start in Unselected
|
|
|
|
|
val unselectedState = awaitLastSequentialItem() as SpaceFiltersState.Unselected
|
|
|
|
|
unselectedState.eventSink(SpaceFiltersEvent.Unselected.ShowFilters)
|
|
|
|
|
|
|
|
|
|
// Emit space filters
|
|
|
|
|
spaceService.emitSpaceFilters(spaceFilters)
|
|
|
|
|
|
|
|
|
|
// Now in Selecting with available filters
|
|
|
|
|
val selectingState = awaitLastSequentialItem() as SpaceFiltersState.Selecting
|
|
|
|
|
assertThat(selectingState.availableFilters).containsExactly(spaceFilter1, spaceFilter2).inOrder()
|
|
|
|
|
@@ -179,10 +230,12 @@ class SpaceFiltersPresenterTest {
|
|
|
|
|
matrixClient = matrixClient,
|
|
|
|
|
)
|
|
|
|
|
presenter.test {
|
|
|
|
|
// Go to Selecting and emit filters
|
|
|
|
|
// Emit filters first
|
|
|
|
|
spaceService.emitSpaceFilters(listOf(spaceFilter, otherSpaceFilter))
|
|
|
|
|
|
|
|
|
|
// Go to Selecting
|
|
|
|
|
val unselectedState = awaitLastSequentialItem() as SpaceFiltersState.Unselected
|
|
|
|
|
unselectedState.eventSink(SpaceFiltersEvent.Unselected.ShowFilters)
|
|
|
|
|
spaceService.emitSpaceFilters(listOf(spaceFilter, otherSpaceFilter))
|
|
|
|
|
|
|
|
|
|
// Select the filter
|
|
|
|
|
val selectingState = awaitLastSequentialItem() as SpaceFiltersState.Selecting
|
|
|
|
|
@@ -224,13 +277,13 @@ class SpaceFiltersPresenterTest {
|
|
|
|
|
matrixClient = matrixClient,
|
|
|
|
|
)
|
|
|
|
|
presenter.test {
|
|
|
|
|
// Emit initial space filters
|
|
|
|
|
spaceService.emitSpaceFilters(listOf(originalFilter))
|
|
|
|
|
|
|
|
|
|
// Start in Unselected
|
|
|
|
|
val unselectedState = awaitLastSequentialItem() as SpaceFiltersState.Unselected
|
|
|
|
|
unselectedState.eventSink(SpaceFiltersEvent.Unselected.ShowFilters)
|
|
|
|
|
|
|
|
|
|
// Emit initial space filters
|
|
|
|
|
spaceService.emitSpaceFilters(listOf(originalFilter))
|
|
|
|
|
|
|
|
|
|
// Now in Selecting
|
|
|
|
|
val selectingState = awaitLastSequentialItem() as SpaceFiltersState.Selecting
|
|
|
|
|
selectingState.eventSink(SpaceFiltersEvent.Selecting.SelectFilter(originalFilter))
|
|
|
|
|
|