1717package com.ichi2.testutils
1818
1919import android.annotation.SuppressLint
20- import com.ichi2.anki.ioDispatcher
21- import com.ichi2.anki.isCollectionEmpty
2220import com.ichi2.anki.libanki.Card
2321import com.ichi2.anki.libanki.CardType
2422import com.ichi2.anki.libanki.Collection
@@ -34,6 +32,7 @@ import com.ichi2.anki.libanki.testutils.TestCollectionManager
3432import com.ichi2.anki.libanki.testutils.ext.addNote
3533import kotlinx.coroutines.Dispatchers
3634import kotlinx.coroutines.test.StandardTestDispatcher
35+ import kotlinx.coroutines.test.TestDispatcher
3736import kotlinx.coroutines.test.TestScope
3837import kotlinx.coroutines.test.UnconfinedTestDispatcher
3938import kotlinx.coroutines.test.setMain
@@ -45,7 +44,8 @@ import kotlin.time.Duration.Companion.milliseconds
4544
4645/* *
4746 * marker interface for classes which contain tests and access the Anki collection
48- * @see AndroidTest
47+ *
48+ * Android (AnkiDroid/Robolectric) is not required for these tests to run
4949 */
5050interface TestClass {
5151 val col: Collection
@@ -189,7 +189,7 @@ interface TestClass {
189189 }
190190 }
191191
192- /* * Ensures [ isCollectionEmpty] returns `false` */
192+ /* * Ensures `DeckUtils. isCollectionEmpty` returns `false` */
193193 fun ensureNonEmptyCollection () {
194194 addNotes(1 )
195195 }
@@ -296,6 +296,9 @@ interface TestClass {
296296 col.updateNote(this )
297297 }
298298
299+ fun setupTestDispatcher (dispatcher : TestDispatcher ) {
300+ }
301+
299302 /* * * A wrapper around the standard [kotlinx.coroutines.test.runTest] that
300303 * takes care of updating the dispatcher used by CollectionManager as well.
301304 * * An argument could be made for using [StandardTestDispatcher] and
@@ -320,7 +323,7 @@ interface TestClass {
320323 ) {
321324 val dispatcher = UnconfinedTestDispatcher ()
322325 Dispatchers .setMain(dispatcher)
323- ioDispatcher = dispatcher
326+ setupTestDispatcher( dispatcher)
324327 repeat(times) {
325328 if (times != 1 ) Timber .d(" ------ Executing test $it /$times ------" )
326329 kotlinx.coroutines.test.runTest(context, dispatchTimeoutMs.milliseconds) {
0 commit comments