@@ -12,6 +12,7 @@ import io.kotest.assertions.throwables.shouldThrowUnitWithMessage
1212import io.kotest.assertions.throwables.shouldThrowWithMessage
1313import io.kotest.core.spec.style.FreeSpec
1414import io.kotest.datatest.withData
15+ import io.kotest.matchers.collections.shouldContain
1516import io.kotest.matchers.collections.shouldContainExactlyInAnyOrder
1617import io.kotest.matchers.shouldBe
1718import io.kotest.matchers.string.shouldEndWith
@@ -26,10 +27,7 @@ import ru.nsk.kstatemachine.state.*
2627import ru.nsk.kstatemachine.statemachine.StateMachineTestData.OffEvent
2728import ru.nsk.kstatemachine.statemachine.StateMachineTestData.OnEvent
2829import ru.nsk.kstatemachine.testing.Testing.startFromBlocking
29- import ru.nsk.kstatemachine.transition.DefaultTransition
30- import ru.nsk.kstatemachine.transition.Transition
31- import ru.nsk.kstatemachine.transition.TransitionType
32- import ru.nsk.kstatemachine.transition.onTriggered
30+ import ru.nsk.kstatemachine.transition.*
3331
3432private object StateMachineTestData {
3533 object OnEvent : Event
@@ -363,6 +361,22 @@ class StateMachineTest : FreeSpec({
363361 }
364362 }
365363
364+ " isStartTransition" {
365+ lateinit var state2 : State
366+ val machine = createTestStateMachine(coroutineStarterType) {
367+ state2 = state("state2") {
368+ onEntry { it.isStartTransition shouldBe false }
369+ }
370+ initialState("initial") {
371+ onEntry { it.isStartTransition shouldBe true }
372+ transitionOn<SwitchEvent > { targetState = { state2 } }
373+ }
374+ onStarted { it.isStartTransition shouldBe true }
375+ }
376+ machine.processEvent(SwitchEvent )
377+ machine.activeStates().shouldContain(state2)
378+ }
379+
366380 " destroy from onStart" {
367381 val callbacks = mockkCallbacks()
368382 val machine = createTestStateMachine(coroutineStarterType) {
0 commit comments