Test Mode
constructor(storage: Storage, isTestEnvironment: Boolean = Companion.isTestEnvironment, getSuperwallProducts: suspend () -> Either<SuperwallProductsResponse, NetworkError> = {
Either.Failure(NetworkError.Unknown())
}, entitlements: Entitlements? = null, activityProvider: () -> ActivityProvider? = { null }, activityTracker: () -> CurrentActivityTracker? = { null }, hasExternalPurchaseController: () -> Boolean = { false }, apiKey: () -> String = { "" }, dashboardBaseUrl: () -> String = { "" }, tracker: suspend (TrackableSuperwallEvent) -> Unit = { }, showModal: suspend (activity: Activity, reason: String, hasPurchaseController: Boolean, availableEntitlements: List<String>, apiKey: String, dashboardBaseUrl: String, savedSettings: TestModeSettings?) -> TestModeModalResult = { activity, reason, hasPC, available, ak, db, saved ->
TestModeModal.show(activity, reason, hasPC, available, ak, db, saved)
}, ioScope: CoroutineScope = IOScope(), actor: StateActor<TestModeContext, TestModeState> = SequentialActor(TestModeState.Inactive, ioScope))(source)