[Wasm] Stop using Dynamic in kotlin-test
This commit is contained in:
committed by
Space Team
parent
1071669a92
commit
635671d623
@@ -21,15 +21,15 @@ private fun it(name: String, fn: () -> JsAny?): Unit =
|
|||||||
private fun xit(name: String, fn: () -> JsAny?): Unit =
|
private fun xit(name: String, fn: () -> JsAny?): Unit =
|
||||||
js("xit(name, fn)")
|
js("xit(name, fn)")
|
||||||
|
|
||||||
private fun jsThrow(jsException: Dynamic) {
|
private fun jsThrow(jsException: JsAny) {
|
||||||
js("throw e")
|
js("throw e")
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun throwableToJsError(message: String, stack: String): Dynamic {
|
private fun throwableToJsError(message: String, stack: String): JsAny {
|
||||||
js("var e = new Error(); e.message = message; e.stack = stack; return e;")
|
js("var e = new Error(); e.message = message; e.stack = stack; return e;")
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun Throwable.toJsError(): Dynamic =
|
private fun Throwable.toJsError(): JsAny =
|
||||||
throwableToJsError(message ?: "", stackTraceToString())
|
throwableToJsError(message ?: "", stackTraceToString())
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -52,7 +52,7 @@ internal class JasmineLikeAdapter : FrameworkAdapter {
|
|||||||
.toThrowableOrNull()
|
.toThrowableOrNull()
|
||||||
?.let { it.toJsError() }
|
?.let { it.toJsError() }
|
||||||
?: exception
|
?: exception
|
||||||
Promise.reject(jsException) as Dynamic
|
Promise.reject(jsException)
|
||||||
}
|
}
|
||||||
} catch (exception: Throwable) {
|
} catch (exception: Throwable) {
|
||||||
jsThrow(exception.toJsError())
|
jsThrow(exception.toJsError())
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ private external fun nodeArguments(): String
|
|||||||
|
|
||||||
internal class TeamcityAdapter : FrameworkAdapter {
|
internal class TeamcityAdapter : FrameworkAdapter {
|
||||||
|
|
||||||
private var scheduleNextTaskAfter: Promise<Dynamic?>? = null
|
private var scheduleNextTaskAfter: Promise<JsAny?>? = null
|
||||||
private fun runOrScheduleNext(block: () -> Unit) {
|
private fun runOrScheduleNext(block: () -> Unit) {
|
||||||
if (scheduleNextTaskAfter == null) {
|
if (scheduleNextTaskAfter == null) {
|
||||||
block()
|
block()
|
||||||
@@ -26,14 +26,14 @@ internal class TeamcityAdapter : FrameworkAdapter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun runOrScheduleNextWithResult(block: () -> Promise<Dynamic?>?) {
|
private fun runOrScheduleNextWithResult(block: () -> Promise<JsAny?>?) {
|
||||||
if (scheduleNextTaskAfter == null) {
|
if (scheduleNextTaskAfter == null) {
|
||||||
val result = block()
|
val result = block()
|
||||||
if (result != null)
|
if (result != null)
|
||||||
scheduleNextTaskAfter = result
|
scheduleNextTaskAfter = result
|
||||||
} else {
|
} else {
|
||||||
scheduleNextTaskAfter = scheduleNextTaskAfter!!.then {
|
scheduleNextTaskAfter = scheduleNextTaskAfter!!.then {
|
||||||
block() as Dynamic?
|
block()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,19 +3,19 @@ package test.js
|
|||||||
import kotlin.js.*
|
import kotlin.js.*
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|
||||||
internal fun jsAsyncFoo(): Promise<Dynamic?> =
|
internal fun jsAsyncFoo(): Promise<JsAny?> =
|
||||||
js("(async () => 'foo')()")
|
js("(async () => 'foo')()")
|
||||||
|
|
||||||
internal fun jsFoo(): Dynamic =
|
internal fun jsFoo(): JsAny =
|
||||||
js("'foo'")
|
js("'foo'")
|
||||||
|
|
||||||
var state: Dynamic? = null
|
var state: JsAny? = null
|
||||||
|
|
||||||
class MyThrowable : Throwable()
|
class MyThrowable : Throwable()
|
||||||
|
|
||||||
class AsyncTest {
|
class AsyncTest {
|
||||||
@Test
|
@Test
|
||||||
fun test1(): Promise<Dynamic?> {
|
fun test1(): Promise<JsAny?> {
|
||||||
var thenExecuted = false
|
var thenExecuted = false
|
||||||
val p = jsAsyncFoo().then { value ->
|
val p = jsAsyncFoo().then { value ->
|
||||||
state = value
|
state = value
|
||||||
@@ -27,7 +27,7 @@ class AsyncTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun test2(): Promise<Dynamic?> {
|
fun test2(): Promise<JsAny?> {
|
||||||
assertEquals(state, jsFoo())
|
assertEquals(state, jsFoo())
|
||||||
var thenExecuted = false
|
var thenExecuted = false
|
||||||
val p = jsAsyncFoo().then {
|
val p = jsAsyncFoo().then {
|
||||||
@@ -44,10 +44,9 @@ class AsyncTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testJsValueToThrowableOrNull1(): Promise<Dynamic?> {
|
fun testJsValueToThrowableOrNull1(): Promise<JsAny?> {
|
||||||
val p = jsAsyncFoo().then {
|
val p = jsAsyncFoo().then {
|
||||||
throw MyThrowable()
|
throw MyThrowable()
|
||||||
null
|
|
||||||
}.catch { e ->
|
}.catch { e ->
|
||||||
assert(e.toThrowableOrNull() is MyThrowable)
|
assert(e.toThrowableOrNull() is MyThrowable)
|
||||||
null
|
null
|
||||||
@@ -58,6 +57,6 @@ class AsyncTest {
|
|||||||
@Test
|
@Test
|
||||||
fun testJsValueToThrowableOrNull2() {
|
fun testJsValueToThrowableOrNull2() {
|
||||||
val e = MyThrowable()
|
val e = MyThrowable()
|
||||||
assertEquals((e as Dynamic).toThrowableOrNull(), e)
|
assertEquals((e.toJsHandle()).toThrowableOrNull(), e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user