1 // Copyright 2015-present 650 Industries. All rights reserved. 2 package host.exp.exponent.utils 3 4 import androidx.test.espresso.IdlingResource 5 import de.greenrobot.event.EventBus 6 import host.exp.exponent.test.TestCompletedEvent 7 import host.exp.exponent.test.TestResolvePromiseEvent 8 9 class JSTestRunnerIdlingResource : IdlingResource { 10 private var hasCompleted = false 11 private var resourceCallback: IdlingResource.ResourceCallback? = null 12 var testResult: String? = null 13 private set 14 onEventnull15 fun onEvent(event: TestCompletedEvent) { 16 hasCompleted = true 17 testResult = event.result 18 resourceCallback?.onTransitionToIdle() 19 EventBus.getDefault().post(TestResolvePromiseEvent(event.id)) 20 } 21 getNamenull22 override fun getName(): String { 23 return JSTestRunnerIdlingResource::class.java.name 24 } 25 isIdleNownull26 override fun isIdleNow(): Boolean { 27 return hasCompleted 28 } 29 registerIdleTransitionCallbacknull30 override fun registerIdleTransitionCallback(callback: IdlingResource.ResourceCallback) { 31 resourceCallback = callback 32 } 33 34 init { 35 EventBus.getDefault().register(this) 36 } 37 } 38