KT-22807: allow asynchronous testing in Kotlin/JS with QUnit

This commit is contained in:
gcx11
2019-04-11 23:53:18 +02:00
committed by Anton Bannykh
parent b49c5bf74e
commit 164933a31e
5 changed files with 9 additions and 9 deletions
@@ -38,5 +38,5 @@ public external interface FrameworkAdapter {
* @param ignored whether the test is ignored
* @param testFn contains test body invocation
*/
fun test(name: String, ignored: Boolean, testFn: () -> Any)
fun test(name: String, ignored: Boolean, testFn: () -> Any?)
}
@@ -18,7 +18,7 @@ internal open class BareAdapter : FrameworkAdapter {
}
}
override fun test(name: String, ignored: Boolean, testFn: () -> Any) {
override fun test(name: String, ignored: Boolean, testFn: () -> Any?) {
if (!ignored) {
testFn()
}
@@ -10,8 +10,8 @@ package kotlin.test.adapters
*/
internal external object QUnit {
fun module(name: String, suiteFn: () -> Unit): Unit
fun test(name: String, testFn: (dynamic) -> Any): Unit
fun skip(name: String, testFn: (dynamic) -> Any): Unit
fun test(name: String, testFn: (dynamic) -> Any?): Unit
fun skip(name: String, testFn: (dynamic) -> Any?): Unit
}
/*
@@ -20,8 +20,8 @@ internal external object QUnit {
internal external fun describe(name: String, fn: () -> Unit)
internal external fun xdescribe(name: String, fn: () -> Unit)
internal external fun it(name: String, fn: () -> Any)
internal external fun xit(name: String, fn: () -> Any)
internal external fun it(name: String, fn: () -> Any?)
internal external fun xit(name: String, fn: () -> Any?)
internal fun isQUnit() = jsTypeOf(QUnit) !== "undefined"
@@ -20,7 +20,7 @@ internal class JasmineLikeAdapter : FrameworkAdapter {
}
}
override fun test(name: String, ignored: Boolean, testFn: () -> Any) {
override fun test(name: String, ignored: Boolean, testFn: () -> Any?) {
if (ignored) {
xit(name, testFn)
} else {
@@ -22,7 +22,7 @@ internal class QUnitAdapter : FrameworkAdapter {
ignoredSuite = prevIgnore
}
override fun test(name: String, ignored: Boolean, testFn: () -> Any) {
override fun test(name: String, ignored: Boolean, testFn: () -> Any?) {
if (ignored or ignoredSuite) {
QUnit.skip(name, wrapTest(testFn))
} else {
@@ -30,7 +30,7 @@ internal class QUnitAdapter : FrameworkAdapter {
}
}
private fun wrapTest(testFn: () -> Any): (dynamic) -> Any = { assert ->
private fun wrapTest(testFn: () -> Any?): (dynamic) -> Any? = { assert ->
var assertionsHappened = false
assertHook = { testResult ->
assertionsHappened = true