@@ -43,6 +43,11 @@ class BackstackTransitionsTest {
43
43
assertInitialStateWithMultipleScreens(Crossfade )
44
44
}
45
45
46
+ @Test
47
+ fun transition_noop_forward () {
48
+ assertTransition(null , forward = true )
49
+ }
50
+
46
51
@Test
47
52
fun transition_slide_forward () {
48
53
assertTransition(Slide , forward = true )
@@ -53,6 +58,11 @@ class BackstackTransitionsTest {
53
58
assertTransition(Crossfade , forward = true )
54
59
}
55
60
61
+ @Test
62
+ fun transition_noop_backward () {
63
+ assertTransition(null , forward = false )
64
+ }
65
+
56
66
@Test
57
67
fun transition_slide_backward () {
58
68
assertTransition(Slide , forward = false )
@@ -82,19 +92,29 @@ class BackstackTransitionsTest {
82
92
compose.onNodeWithText(" one" ).assertDoesNotExist()
83
93
}
84
94
85
- private fun assertTransition (transition : BackstackTransition , forward : Boolean ) {
86
- val firstBackstack = listOf ( " one" )
87
- val secondBackstack = listOf ( " one" , " two" )
95
+ private fun assertTransition (transition : BackstackTransition ? , forward : Boolean ) {
96
+ val firstBackstack = mapOf ( 1 to " one" )
97
+ val secondBackstack = mapOf ( 1 to " one" , 2 to " two" )
88
98
var backstack by mutableStateOf(if (forward) firstBackstack else secondBackstack)
89
99
compose.mainClock.autoAdvance = false
90
- compose.setContent {
91
- Backstack (
92
- backstack,
93
- frameController = rememberTransitionController(
94
- animationSpec = animation,
95
- transition = transition
96
- )
97
- ) { BasicText (it) }
100
+
101
+ if (transition != null ) {
102
+ compose.setContent {
103
+ Backstack (
104
+ backstack.keys.toList(),
105
+ frameController = rememberTransitionController(
106
+ animationSpec = animation,
107
+ transition = transition
108
+ )
109
+ ) { BasicText (backstack.getValue(it)) }
110
+ }
111
+ } else {
112
+ compose.setContent {
113
+ Backstack (
114
+ backstack.keys.toList(),
115
+ frameController = NoopFrameController ()
116
+ ) { BasicText (backstack.getValue(it)) }
117
+ }
98
118
}
99
119
val initialText = if (forward) " one" else " two"
100
120
val newText = if (forward) " two" else " one"
0 commit comments