From 1233689bdfd8e9beb37f66f3a810b7dff0eccbe7 Mon Sep 17 00:00:00 2001 From: Roman Artemev Date: Mon, 9 Apr 2018 15:01:39 +0300 Subject: [PATCH 1/2] Add external declarations for mocha framework --- build.gradle | 8 +- externals/mocha/README.md | 0 externals/mocha/_testShared/test.kt | 289 ++++++++ externals/mocha/package.json | 4 + externals/mocha/v5/konfig.json | 3 + .../mocha/v5/src/index.Mocha.interfaces.kt | 10 + externals/mocha/v5/src/index.Mocha.kt | 616 ++++++++++++++++++ .../src/index.Mocha.reporters.Base.cursor.kt | 24 + .../v5/src/index.Mocha.reporters.Base.kt | 60 ++ .../mocha/v5/src/index.Mocha.reporters.kt | 95 +++ externals/mocha/v5/src/index.Mocha.utils.kt | 29 + externals/mocha/v5/src/index.NodeJS.kt | 8 + externals/mocha/v5/src/index.kt | 94 +++ ...ndex.mocha.lib.interfaces.common.common.kt | 70 ++ .../src/index.mocha.lib.interfaces.common.kt | 12 + externals/mocha/v5/src/index.mocha.lib.ms.kt | 23 + externals/mocha/v5/src/moch.utils.kt | 96 +++ 17 files changed, 1440 insertions(+), 1 deletion(-) create mode 100644 externals/mocha/README.md create mode 100644 externals/mocha/_testShared/test.kt create mode 100644 externals/mocha/package.json create mode 100644 externals/mocha/v5/konfig.json create mode 100644 externals/mocha/v5/src/index.Mocha.interfaces.kt create mode 100644 externals/mocha/v5/src/index.Mocha.kt create mode 100644 externals/mocha/v5/src/index.Mocha.reporters.Base.cursor.kt create mode 100644 externals/mocha/v5/src/index.Mocha.reporters.Base.kt create mode 100644 externals/mocha/v5/src/index.Mocha.reporters.kt create mode 100644 externals/mocha/v5/src/index.Mocha.utils.kt create mode 100644 externals/mocha/v5/src/index.NodeJS.kt create mode 100644 externals/mocha/v5/src/index.kt create mode 100644 externals/mocha/v5/src/index.mocha.lib.interfaces.common.common.kt create mode 100644 externals/mocha/v5/src/index.mocha.lib.interfaces.common.kt create mode 100644 externals/mocha/v5/src/index.mocha.lib.ms.kt create mode 100644 externals/mocha/v5/src/moch.utils.kt diff --git a/build.gradle b/build.gradle index 219f513..b69ae94 100644 --- a/build.gradle +++ b/build.gradle @@ -245,7 +245,13 @@ subprojects.stream().filter { it.parent != rootProject }.each { p -> into deployDir } - task preparePackageJson(dependsOn: [validate, cleanDeployDir]) { + task ensureDeployDir { + doLast { + mkdir "$deployDir" + } + } + + task preparePackageJson(dependsOn: [validate, cleanDeployDir, ensureDeployDir]) { doFirst { def packageJson = new JsonSlurper().parseText(file(packageJsonPath).text) diff --git a/externals/mocha/README.md b/externals/mocha/README.md new file mode 100644 index 0000000..e69de29 diff --git a/externals/mocha/_testShared/test.kt b/externals/mocha/_testShared/test.kt new file mode 100644 index 0000000..ecca8af --- /dev/null +++ b/externals/mocha/_testShared/test.kt @@ -0,0 +1,289 @@ +import js.externals.mocha.* +import js.externals.mocha.context + +import js.externals.mocha.kotlinUtils.* +import js.externals.mocha.specify +import kotlin.js.Promise + +fun assertEquals(a: T, b: T, message: String = "") { + if (!a!!.equals(b)) throw Error(message) +} + +class Calc { + fun add(i: Int, j: Int) = i + j + fun mul(i: Int, j: Int) = i * j +} + +fun main(a: Array) { + SimpleTest().run { + test_simple() + test_describe() + test_context() + test_suite() + test_specify() + test_it() + test_test() + test_before() + test_beforeEach() + test_after() + test_afterEach() + test_setup() + test_suiteSetup() + test_teardown() + test_suiteTeardown() + } +} + +class SimpleTest { + fun test_simple() { + + val calcInstance = Calc() + + describe("Calc test") { + describe("Additional test") { + it("returns 1 + 1 == 2") { + assertEquals(calcInstance.add(1, 1), 2) + } + xit("returns 1 + 2 == 3") { + assertEquals(calcInstance.add(1, 2), 3) + } + xit("returns 1 + 4 == 5") { + assertEquals(calcInstance.add(1, 4), 5) + } + } + + describe("Multiplication test") { + it("returns 2 * 2 == 4") { + assertEquals(calcInstance.mul(2, 2), 4) + } + } + } + } + + // + fun test_describe() { + describe("TEST_DESCRIBE") { + describe("does something") { } + +// describe.only("does something ONLY") { } +// + describe.skip("does something SKIP") { promise(10) } + + describe("does something CONTEXT") { retries(3).slow(1000).timeout(2000).retries(3) } + } + } + + // + fun test_context() { + describe("TEST_CONTEXT") { + context("some context") { } + +// context.only("some context") { } + + context.skip("some context SKIP") { } + + context("some context CONTEXT") { retries(3).slow(1000).timeout(2000).retries(3) } + } + } + + fun test_suite() { + describe("TEST_SUITE") { + suite("some context") { } + +// suite.only("some context") { } + + suite.skip("some context SKIP") { } + + suite("some context CONTEXT") { retries(3).slow(1000).timeout(2000).retries(3) } + } + } + + + fun test_it() { + + describe("TEST_IT") { + xit.async("x async does something timeout") { d -> d() }.timeout("2s") + + it("does something TLS") { set("sharedState", true) } + + xit.async("x async does something") { done -> done() } + + it("promise does something OK") { Promise.resolve(null) } + it("promise does something ERROR") { Promise.reject(Throwable("some error")) } + +// it.only("does something ONLY") { promise(1) } + + // TODO: see issue KT-25474 + it.skip.invoke("does something SKIP") { promise(2) } + + it("does something Context") { retries(3).slow(1000).timeout(2000).skip() } + } + } + + + fun promise(v: Int) = Promise { resolve, reject -> + js("setTimeout")({ resolve(v) }, 100) + } + + fun test_test() { + + describe("TEST_TEST") { + test("does something") { } + + test("does something Context") { set("sharedState", true) } + + test.async("async does something OK") { done -> done() } + test.async("async does something ERROR") { done -> done() } + + test("promise does something OK") { Promise.resolve(null) } + test("promise does something ERROR") { Promise.reject(Throwable("some error")) } +// +// test.only("does something ONLY") { } +// test.only.async("async does something OK ONLY") { d -> d() } +// test.only.async("async does something ERROR ONLY") { d -> d("ERROR") } +// + // TODO: see issue KT-25474 + test.skip.invoke("SKIP does something") {} + + test("does something") { retries(3).slow(1000).timeout(2000).skip() } + } + } + + fun test_specify() { + describe("TEST_SPECIFY") { + specify("does something") {} + specify.async("async does something") { d -> d() } + + specify("does something") { set("sharedState", true) } + + specify("does something PROMISE PASSED") { Promise.resolve(null) } + specify("does something PROMISE ERRROR") { Promise.reject(Throwable("some error")) } + +// specify.only("does something ONLY", { }) +// specify.only.async("async does something ONLY", { d-> d() }) + + // TODO: see issue KT-25474 + specify.skip.invoke("does something SKIP") { } + + specify("does something") { retries(3).slow(1000).timeout(2000).skip() } + } + } + + fun test_before() { + describe("TEST_BEFORE") { + before { } + + before { set("sharedState", true) } + + before.async { done -> done() } + + before { Promise.resolve(null) } +// before { Promise.reject(Throwable("some error")) } + + before("my description") { } + + before.async("my description") { done -> done() } + + before("my description") { Promise.resolve(null) } +// before("my description") { Promise.reject(Throwable("some error")) } + + before("my description") { timeout(2000).skip() } + } + } + + fun test_setup() { + describe("TEST_SETUP") { + setup { } + + setup {} + + setup.async { done -> done() } + + setup { Promise.resolve(null) } + } + } + + fun test_after() { + describe("TEST_AFTER") { + after { } + + after { set("sharedState", true) } + + after.async { done -> done() } + + after { Promise.resolve(null) } + + after("my description") { } + + after.async("async my description") { done -> done() } + + after("my description CONTEXT") { Promise.resolve(null) } + } + } + + fun test_teardown() { + describe("TEST_TEARDOWN") { + teardown { } + + teardown { set("sharedState", true) } + + teardown.async { done -> done() } + + teardown { Promise.resolve(null) } + } + } + + fun test_beforeEach() { + describe("TEST_BEFORE") { + beforeEach { } + + beforeEach { set("sharedState", true) } + + beforeEach.async { done -> done() } + + beforeEach { Promise.resolve(null) } + + beforeEach("my description") { } + + beforeEach.async("my description") { done -> done() } + + beforeEach("my description") { Promise.resolve(null) } + } + } + + fun test_suiteSetup() { + suiteSetup { } + + suiteSetup { set("sharedState", true) } + + suiteSetup.async { done -> done() } + + suiteSetup { Promise.resolve(null) } + } + + fun test_suiteTeardown() { + suiteTeardown { } + + suiteTeardown { set("sharedState", true) } + + suiteTeardown.async { done -> done() } + + suiteTeardown { Promise.resolve(null) } + } + + fun test_afterEach() { + afterEach { } + + afterEach { set("sharedState", true) } + + afterEach.async { done -> done() } + + afterEach { Promise.resolve(null) } + + afterEach("my description") { } + + afterEach.async("my description") { done -> done() } + + afterEach("my description") { Promise.resolve(null) } + } +} \ No newline at end of file diff --git a/externals/mocha/package.json b/externals/mocha/package.json new file mode 100644 index 0000000..167344b --- /dev/null +++ b/externals/mocha/package.json @@ -0,0 +1,4 @@ +{ + "description": "mocha", + "name": "mocha" +} diff --git a/externals/mocha/v5/konfig.json b/externals/mocha/v5/konfig.json new file mode 100644 index 0000000..0f37533 --- /dev/null +++ b/externals/mocha/v5/konfig.json @@ -0,0 +1,3 @@ +{ + "version": "5.0.0" +} diff --git a/externals/mocha/v5/src/index.Mocha.interfaces.kt b/externals/mocha/v5/src/index.Mocha.interfaces.kt new file mode 100644 index 0000000..92ff857 --- /dev/null +++ b/externals/mocha/v5/src/index.Mocha.interfaces.kt @@ -0,0 +1,10 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS", "EXTERNAL_DELEGATION", "NESTED_CLASS_IN_EXTERNAL_INTERFACE") +@file:[JsModule("mocha") JsQualifier("interfaces")] +package js.externals.mocha.Mocha.interfaces + +import js.externals.mocha.Mocha.Suite + +external fun bdd(suite: Suite): Unit = definedExternally +external fun tdd(suite: Suite): Unit = definedExternally +external fun qunit(suite: Suite): Unit = definedExternally +external fun exports(suite: Suite): Unit = definedExternally diff --git a/externals/mocha/v5/src/index.Mocha.kt b/externals/mocha/v5/src/index.Mocha.kt new file mode 100644 index 0000000..bde1ed1 --- /dev/null +++ b/externals/mocha/v5/src/index.Mocha.kt @@ -0,0 +1,616 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS", "EXTERNAL_DELEGATION", "NESTED_CLASS_IN_EXTERNAL_INTERFACE") +@file:JsModule("mocha") +@file:JsNonModule +package js.externals.mocha.Mocha + +import js.externals.mocha.NodeJS.EventEmitter +import js.externals.mocha._Mocha +import kotlin.js.Date +import kotlin.js.Promise +import kotlin.js.RegExp + +external interface HookFunction + +external interface SuiteFunction { + var only: ExclusiveSuiteFunction + var skip: (title: String, fn: Suite.() -> Unit) -> dynamic /* Unit | Suite */ +} +external interface ExclusiveSuiteFunction + +external interface TestFunction { + var only: ExclusiveTestFunction + var skip: PendingTestFunction + fun retries(n: Number) +} + +external interface ExclusiveTestFunction + +external interface PendingTestFunction + +external var afterEach: HookFunction = definedExternally +external var after: HookFunction = definedExternally +external var beforeEach: HookFunction = definedExternally +external var before: HookFunction = definedExternally +external var describe: SuiteFunction = definedExternally +external var it: TestFunction = definedExternally +external var xit: PendingTestFunction = definedExternally +external var setup: HookFunction = definedExternally +external var suiteSetup: HookFunction = definedExternally +external var suiteTeardown: HookFunction = definedExternally +external var suite: SuiteFunction = definedExternally +external var teardown: HookFunction = definedExternally +external var test: TestFunction = definedExternally +external fun run(): Unit = definedExternally +external open class Runnable : EventEmitter { + constructor(title: String, fn: ((`this`: Context, done: (err: Any? /*= null*/) -> Unit) -> Unit)? = definedExternally /* null */) + constructor(title: String, fn: ((`this`: Context) -> Promise)? = definedExternally /* null */) + open var _slow: Any = definedExternally + open var _enableTimeouts: Any = definedExternally + open var _retries: Any = definedExternally + open var _currentRetry: Any = definedExternally + open var _timeout: Any = definedExternally + open var _timeoutError: Any = definedExternally + open var title: String = definedExternally + open var fn: dynamic /* (`this`: Context, done: (err: Any? /*= null*/) -> Unit) -> Unit | (`this`: Context) -> Promise */ = definedExternally + open var body: String = definedExternally + open var async: Boolean = definedExternally + open var sync: Boolean = definedExternally + open var timedOut: Boolean = definedExternally + open var pending: Boolean = definedExternally + open var duration: Number = definedExternally + open var parent: Suite = definedExternally + open var state: dynamic /* String /* "failed" */ | String /* "passed" */ */ = definedExternally + open var timer: Any = definedExternally + open var ctx: Context = definedExternally + open var callback: (err: Any? /*= null*/) -> Unit = definedExternally + open var allowUncaught: Boolean = definedExternally + open var file: String = definedExternally + open fun timeout(): Number = definedExternally + open fun timeout(ms: String): Runnable /* this */ = definedExternally + open fun timeout(ms: Number): Runnable /* this */ = definedExternally + open fun slow(): Number = definedExternally + open fun slow(ms: String): Runnable /* this */ = definedExternally + open fun slow(ms: Number): Runnable /* this */ = definedExternally + open fun enableTimeouts(): Boolean = definedExternally + open fun enableTimeouts(enabled: Boolean): Runnable /* this */ = definedExternally + open fun skip(): Any? = definedExternally + open fun isPending(): Boolean = definedExternally + open fun isFailed(): Boolean = definedExternally + open fun isPassed(): Boolean = definedExternally + open fun retries(): Number = definedExternally + open fun retries(n: Number): Unit = definedExternally + open fun currentRetry(): Number = definedExternally + open fun currentRetry(n: Number): Unit = definedExternally + open fun fullTitle(): String = definedExternally + open fun titlePath(): Array = definedExternally + open fun clearTimeout(): Unit = definedExternally + open fun inspect(): String = definedExternally + open fun resetTimeout(): Unit = definedExternally + open fun globals(): Array = definedExternally + open fun globals(globals: Array): Unit = definedExternally + open fun run(fn: (err: Any? /*= null*/) -> Unit): Unit = definedExternally + fun on(event: String /* "error" */, listener: (error: Any) -> Unit): Runnable /* this */ + fun once(event: String /* "error" */, listener: (error: Any) -> Unit): Runnable /* this */ + fun addListener(event: String /* "error" */, listener: (error: Any) -> Unit): Runnable /* this */ + fun removeListener(event: String /* "error" */, listener: (error: Any) -> Unit): Runnable /* this */ + fun prependListener(event: String /* "error" */, listener: (error: Any) -> Unit): Runnable /* this */ + fun prependOnceListener(event: String /* "error" */, listener: (error: Any) -> Unit): Runnable /* this */ + fun emit(name: String /* "error" */, error: Any): Boolean + fun on(event: String, listener: (args: Any) -> Unit): Runnable /* this */ + fun once(event: String, listener: (args: Any) -> Unit): Runnable /* this */ + fun addListener(event: String, listener: (args: Any) -> Unit): Runnable /* this */ + fun removeListener(event: String, listener: (args: Any) -> Unit): Runnable /* this */ + fun prependListener(event: String, listener: (args: Any) -> Unit): Runnable /* this */ + fun prependOnceListener(event: String, listener: (args: Any) -> Unit): Runnable /* this */ + fun emit(name: String, vararg args: Any): Boolean +} +external open class Context { + open var _runnable: Any = definedExternally + open var test: Runnable = definedExternally + open var currentTest: Test = definedExternally + open fun runnable(): Runnable = definedExternally + open fun runnable(runnable: Runnable): Context /* this */ = definedExternally + open fun runnable(runnable: IRunnable): Context /* this */ = definedExternally + open fun timeout(): Number = definedExternally + open fun timeout(ms: String): Context /* this */ = definedExternally + open fun timeout(ms: Number): Context /* this */ = definedExternally + open fun enableTimeouts(): Boolean = definedExternally + open fun enableTimeouts(enabled: Boolean): Context /* this */ = definedExternally + open fun slow(): Number = definedExternally + open fun slow(ms: String): Context /* this */ = definedExternally + open fun slow(ms: Number): Context /* this */ = definedExternally + open fun skip(): Any? = definedExternally + open fun retries(): Number = definedExternally + open fun retries(n: Number): Context /* this */ = definedExternally + @nativeGetter + open operator fun get(key: String): Any? = definedExternally + @nativeSetter + open operator fun set(key: String, value: Any): Unit = definedExternally +} +external open class Runner : EventEmitter { + constructor(suite: Suite, delay: Boolean) + constructor(suite: ISuite, delay: Boolean) + open var _globals: Any = definedExternally + open var _abort: Any = definedExternally + open var _delay: Any = definedExternally + open var _defaultGrep: Any = definedExternally + open var next: Any = definedExternally + open var hookErr: Any = definedExternally + open var prevGlobalsLength: Any = definedExternally + open var nextSuite: Any = definedExternally + open var suite: Suite = definedExternally + open var started: Boolean = definedExternally + open var total: Number = definedExternally + open var failures: Number = definedExternally + open var asyncOnly: Boolean = definedExternally + open var allowUncaught: Boolean = definedExternally + open var fullStackTrace: Boolean = definedExternally + open var forbidOnly: Boolean = definedExternally + open var forbidPending: Boolean = definedExternally + open var ignoreLeaks: Boolean = definedExternally + open var test: Test = definedExternally + open var currentRunnable: Runnable = definedExternally + open var stats: Stats = definedExternally + open fun grep(re: RegExp, invert: Boolean): Runner /* this */ = definedExternally + open fun grepTotal(suite: Suite): Number = definedExternally + open fun grepTotal(suite: ISuite): Number = definedExternally + open fun globals(): Array = definedExternally + open fun globals(arr: Array): Runner /* this */ = definedExternally + open fun run(fn: ((failures: Number) -> Unit)? = definedExternally /* null */): Runner /* this */ = definedExternally + open fun abort(): Runner /* this */ = definedExternally + open fun uncaught(err: Any): Unit = definedExternally + open fun globalProps(): Array = definedExternally + open fun checkGlobals(test: Test): Unit = definedExternally + open fun fail(test: Test, err: Any): Unit = definedExternally + open fun failHook(hook: Hook, err: Any): Unit = definedExternally + open fun hook(name: String, fn: () -> Unit): Unit = definedExternally + open fun hooks(name: String, suites: Array, fn: (err: Any? /*= null*/, errSuite: Suite? /*= null*/) -> Unit): Unit = definedExternally + open fun hookUp(name: String, fn: (err: Any? /*= null*/, errSuite: Suite? /*= null*/) -> Unit): Unit = definedExternally + open fun hookDown(name: String, fn: (err: Any? /*= null*/, errSuite: Suite? /*= null*/) -> Unit): Unit = definedExternally + open fun parents(): Array = definedExternally + open fun runTest(fn: (err: Any? /*= null*/) -> Unit): Any = definedExternally + open fun runTests(suite: Suite, fn: (errSuite: Suite? /*= null*/) -> Unit): Unit = definedExternally + open fun runSuite(suite: Suite, fn: (errSuite: Suite? /*= null*/) -> Unit): Unit = definedExternally + companion object { + fun immediately(callback: Function<*>): Unit = definedExternally + } + fun on(event: String /* "waiting" */, listener: (rootSuite: Suite) -> Unit): Runner /* this */ + fun once(event: String /* "waiting" */, listener: (rootSuite: Suite) -> Unit): Runner /* this */ + fun addListener(event: String /* "waiting" */, listener: (rootSuite: Suite) -> Unit): Runner /* this */ + fun removeListener(event: String /* "waiting" */, listener: (rootSuite: Suite) -> Unit): Runner /* this */ + fun prependListener(event: String /* "waiting" */, listener: (rootSuite: Suite) -> Unit): Runner /* this */ + fun prependOnceListener(event: String /* "waiting" */, listener: (rootSuite: Suite) -> Unit): Runner /* this */ + fun emit(name: String /* "waiting" */, rootSuite: Suite): Boolean + fun on(event: String /* "start" */, listener: () -> Unit): Runner /* this */ + fun once(event: String /* "start" */, listener: () -> Unit): Runner /* this */ + fun addListener(event: String /* "start" */, listener: () -> Unit): Runner /* this */ + fun removeListener(event: String /* "start" */, listener: () -> Unit): Runner /* this */ + fun prependListener(event: String /* "start" */, listener: () -> Unit): Runner /* this */ + fun prependOnceListener(event: String /* "start" */, listener: () -> Unit): Runner /* this */ + fun emit(name: String /* "start" */): Boolean + fun on(event: String /* "end" */, listener: () -> Unit): Runner /* this */ + fun once(event: String /* "end" */, listener: () -> Unit): Runner /* this */ + fun addListener(event: String /* "end" */, listener: () -> Unit): Runner /* this */ + fun removeListener(event: String /* "end" */, listener: () -> Unit): Runner /* this */ + fun prependListener(event: String /* "end" */, listener: () -> Unit): Runner /* this */ + fun prependOnceListener(event: String /* "end" */, listener: () -> Unit): Runner /* this */ + fun emit(name: String /* "end" */): Boolean + fun on(event: String /* "suite" */, listener: (suite: Suite) -> Unit): Runner /* this */ + fun once(event: String /* "suite" */, listener: (suite: Suite) -> Unit): Runner /* this */ + fun addListener(event: String /* "suite" */, listener: (suite: Suite) -> Unit): Runner /* this */ + fun removeListener(event: String /* "suite" */, listener: (suite: Suite) -> Unit): Runner /* this */ + fun prependListener(event: String /* "suite" */, listener: (suite: Suite) -> Unit): Runner /* this */ + fun prependOnceListener(event: String /* "suite" */, listener: (suite: Suite) -> Unit): Runner /* this */ + fun emit(name: String /* "suite" */, suite: Suite): Boolean + fun on(event: String /* "suite end" */, listener: (suite: Suite) -> Unit): Runner /* this */ + fun once(event: String /* "suite end" */, listener: (suite: Suite) -> Unit): Runner /* this */ + fun addListener(event: String /* "suite end" */, listener: (suite: Suite) -> Unit): Runner /* this */ + fun removeListener(event: String /* "suite end" */, listener: (suite: Suite) -> Unit): Runner /* this */ + fun prependListener(event: String /* "suite end" */, listener: (suite: Suite) -> Unit): Runner /* this */ + fun prependOnceListener(event: String /* "suite end" */, listener: (suite: Suite) -> Unit): Runner /* this */ + fun emit(name: String /* "suite end" */, suite: Suite): Boolean + fun on(event: String /* "test" */, listener: (test: Test) -> Unit): Runner /* this */ + fun once(event: String /* "test" */, listener: (test: Test) -> Unit): Runner /* this */ + fun addListener(event: String /* "test" */, listener: (test: Test) -> Unit): Runner /* this */ + fun removeListener(event: String /* "test" */, listener: (test: Test) -> Unit): Runner /* this */ + fun prependListener(event: String /* "test" */, listener: (test: Test) -> Unit): Runner /* this */ + fun prependOnceListener(event: String /* "test" */, listener: (test: Test) -> Unit): Runner /* this */ + fun emit(name: String /* "test" */, test: Test): Boolean + fun on(event: String /* "test end" */, listener: (test: Test) -> Unit): Runner /* this */ + fun once(event: String /* "test end" */, listener: (test: Test) -> Unit): Runner /* this */ + fun addListener(event: String /* "test end" */, listener: (test: Test) -> Unit): Runner /* this */ + fun removeListener(event: String /* "test end" */, listener: (test: Test) -> Unit): Runner /* this */ + fun prependListener(event: String /* "test end" */, listener: (test: Test) -> Unit): Runner /* this */ + fun prependOnceListener(event: String /* "test end" */, listener: (test: Test) -> Unit): Runner /* this */ + fun emit(name: String /* "test end" */, test: Test): Boolean + fun on(event: String /* "hook" */, listener: (hook: Hook) -> Unit): Runner /* this */ + fun once(event: String /* "hook" */, listener: (hook: Hook) -> Unit): Runner /* this */ + fun addListener(event: String /* "hook" */, listener: (hook: Hook) -> Unit): Runner /* this */ + fun removeListener(event: String /* "hook" */, listener: (hook: Hook) -> Unit): Runner /* this */ + fun prependListener(event: String /* "hook" */, listener: (hook: Hook) -> Unit): Runner /* this */ + fun prependOnceListener(event: String /* "hook" */, listener: (hook: Hook) -> Unit): Runner /* this */ + fun emit(name: String /* "hook" */, hook: Hook): Boolean + fun on(event: String /* "hook end" */, listener: (hook: Hook) -> Unit): Runner /* this */ + fun once(event: String /* "hook end" */, listener: (hook: Hook) -> Unit): Runner /* this */ + fun addListener(event: String /* "hook end" */, listener: (hook: Hook) -> Unit): Runner /* this */ + fun removeListener(event: String /* "hook end" */, listener: (hook: Hook) -> Unit): Runner /* this */ + fun prependListener(event: String /* "hook end" */, listener: (hook: Hook) -> Unit): Runner /* this */ + fun prependOnceListener(event: String /* "hook end" */, listener: (hook: Hook) -> Unit): Runner /* this */ + fun emit(name: String /* "hook end" */, hook: Hook): Boolean + fun on(event: String /* "pass" */, listener: (test: Test) -> Unit): Runner /* this */ + fun once(event: String /* "pass" */, listener: (test: Test) -> Unit): Runner /* this */ + fun addListener(event: String /* "pass" */, listener: (test: Test) -> Unit): Runner /* this */ + fun removeListener(event: String /* "pass" */, listener: (test: Test) -> Unit): Runner /* this */ + fun prependListener(event: String /* "pass" */, listener: (test: Test) -> Unit): Runner /* this */ + fun prependOnceListener(event: String /* "pass" */, listener: (test: Test) -> Unit): Runner /* this */ + fun emit(name: String /* "pass" */, test: Test): Boolean + fun on(event: String /* "fail" */, listener: (test: Test, err: Any) -> Unit): Runner /* this */ + fun once(event: String /* "fail" */, listener: (test: Test, err: Any) -> Unit): Runner /* this */ + fun addListener(event: String /* "fail" */, listener: (test: Test, err: Any) -> Unit): Runner /* this */ + fun removeListener(event: String /* "fail" */, listener: (test: Test, err: Any) -> Unit): Runner /* this */ + fun prependListener(event: String /* "fail" */, listener: (test: Test, err: Any) -> Unit): Runner /* this */ + fun prependOnceListener(event: String /* "fail" */, listener: (test: Test, err: Any) -> Unit): Runner /* this */ + fun emit(name: String /* "fail" */, test: Test, err: Any): Boolean + fun on(event: String /* "pending" */, listener: (test: Test) -> Unit): Runner /* this */ + fun once(event: String /* "pending" */, listener: (test: Test) -> Unit): Runner /* this */ + fun addListener(event: String /* "pending" */, listener: (test: Test) -> Unit): Runner /* this */ + fun removeListener(event: String /* "pending" */, listener: (test: Test) -> Unit): Runner /* this */ + fun prependListener(event: String /* "pending" */, listener: (test: Test) -> Unit): Runner /* this */ + fun prependOnceListener(event: String /* "pending" */, listener: (test: Test) -> Unit): Runner /* this */ + fun emit(name: String /* "pending" */, test: Test): Boolean + fun on(event: String, listener: (args: Any) -> Unit): Runner /* this */ + fun once(event: String, listener: (args: Any) -> Unit): Runner /* this */ + fun addListener(event: String, listener: (args: Any) -> Unit): Runner /* this */ + fun removeListener(event: String, listener: (args: Any) -> Unit): Runner /* this */ + fun prependListener(event: String, listener: (args: Any) -> Unit): Runner /* this */ + fun prependOnceListener(event: String, listener: (args: Any) -> Unit): Runner /* this */ + fun emit(name: String, vararg args: Any): Boolean +} +external open class Suite : EventEmitter { + constructor(title: String, parentContext: Context? = definedExternally /* null */) + constructor(title: String, parentContext: IContext? = definedExternally /* null */) + open var _beforeEach: Any = definedExternally + open var _beforeAll: Any = definedExternally + open var _afterEach: Any = definedExternally + open var _afterAll: Any = definedExternally + open var _timeout: Any = definedExternally + open var _enableTimeouts: Any = definedExternally + open var _slow: Any = definedExternally + open var _bail: Any = definedExternally + open var _retries: Any = definedExternally + open var _onlyTests: Any = definedExternally + open var _onlySuites: Any = definedExternally + open var ctx: Context = definedExternally + open var suites: Array = definedExternally + open var tests: Array = definedExternally + open var pending: Boolean = definedExternally + open var file: String = definedExternally + open var root: Boolean = definedExternally + open var delayed: Boolean = definedExternally + open var parent: Suite? = definedExternally + open var title: String = definedExternally + open fun clone(): Suite = definedExternally + open fun timeout(): Number = definedExternally + open fun timeout(ms: String): Suite /* this */ = definedExternally + open fun timeout(ms: Number): Suite /* this */ = definedExternally + open fun retries(): Number = definedExternally + open fun retries(n: String): Suite /* this */ = definedExternally + open fun retries(n: Number): Suite /* this */ = definedExternally + open fun enableTimeouts(): Boolean = definedExternally + open fun enableTimeouts(enabled: Boolean): Suite /* this */ = definedExternally + open fun slow(): Number = definedExternally + open fun slow(ms: String): Suite /* this */ = definedExternally + open fun slow(ms: Number): Suite /* this */ = definedExternally + open fun bail(): Boolean = definedExternally + open fun bail(bail: Boolean): Suite /* this */ = definedExternally + open fun isPending(): Boolean = definedExternally + open fun addSuite(suite: Suite): Suite /* this */ = definedExternally + open fun addSuite(suite: ISuite): Suite /* this */ = definedExternally + open fun addTest(test: Test): Suite /* this */ = definedExternally + open fun addTest(test: ITest): Suite /* this */ = definedExternally + open fun fullTitle(): String = definedExternally + open fun titlePath(): Array = definedExternally + open fun total(): Number = definedExternally + open fun eachTest(fn: (test: Test) -> Unit): Suite /* this */ = definedExternally + open fun run(): Unit = definedExternally + companion object { + fun create(parent: Suite, title: String): Suite = definedExternally + fun create(parent: ISuite, title: String): Suite = definedExternally + } + fun on(event: String /* "beforeAll" */, listener: (hook: Hook) -> Unit): Suite /* this */ + fun once(event: String /* "beforeAll" */, listener: (hook: Hook) -> Unit): Suite /* this */ + fun addListener(event: String /* "beforeAll" */, listener: (hook: Hook) -> Unit): Suite /* this */ + fun removeListener(event: String /* "beforeAll" */, listener: (hook: Hook) -> Unit): Suite /* this */ + fun prependListener(event: String /* "beforeAll" */, listener: (hook: Hook) -> Unit): Suite /* this */ + fun prependOnceListener(event: String /* "beforeAll" */, listener: (hook: Hook) -> Unit): Suite /* this */ + fun emit(name: String /* "beforeAll" */, hook: Hook): Boolean + fun on(event: String /* "afterAll" */, listener: (hook: Hook) -> Unit): Suite /* this */ + fun once(event: String /* "afterAll" */, listener: (hook: Hook) -> Unit): Suite /* this */ + fun addListener(event: String /* "afterAll" */, listener: (hook: Hook) -> Unit): Suite /* this */ + fun removeListener(event: String /* "afterAll" */, listener: (hook: Hook) -> Unit): Suite /* this */ + fun prependListener(event: String /* "afterAll" */, listener: (hook: Hook) -> Unit): Suite /* this */ + fun prependOnceListener(event: String /* "afterAll" */, listener: (hook: Hook) -> Unit): Suite /* this */ + fun emit(name: String /* "afterAll" */, hook: Hook): Boolean + fun on(event: String /* "beforeEach" */, listener: (hook: Hook) -> Unit): Suite /* this */ + fun once(event: String /* "beforeEach" */, listener: (hook: Hook) -> Unit): Suite /* this */ + fun addListener(event: String /* "beforeEach" */, listener: (hook: Hook) -> Unit): Suite /* this */ + fun removeListener(event: String /* "beforeEach" */, listener: (hook: Hook) -> Unit): Suite /* this */ + fun prependListener(event: String /* "beforeEach" */, listener: (hook: Hook) -> Unit): Suite /* this */ + fun prependOnceListener(event: String /* "beforeEach" */, listener: (hook: Hook) -> Unit): Suite /* this */ + fun emit(name: String /* "beforeEach" */, hook: Hook): Boolean + fun on(event: String /* "afterEach" */, listener: (hook: Hook) -> Unit): Suite /* this */ + fun once(event: String /* "afterEach" */, listener: (hook: Hook) -> Unit): Suite /* this */ + fun addListener(event: String /* "afterEach" */, listener: (hook: Hook) -> Unit): Suite /* this */ + fun removeListener(event: String /* "afterEach" */, listener: (hook: Hook) -> Unit): Suite /* this */ + fun prependListener(event: String /* "afterEach" */, listener: (hook: Hook) -> Unit): Suite /* this */ + fun prependOnceListener(event: String /* "afterEach" */, listener: (hook: Hook) -> Unit): Suite /* this */ + fun emit(name: String /* "afterEach" */, hook: Hook): Boolean + fun on(event: String /* "suite" */, listener: (suite: Suite) -> Unit): Suite /* this */ + fun once(event: String /* "suite" */, listener: (suite: Suite) -> Unit): Suite /* this */ + fun addListener(event: String /* "suite" */, listener: (suite: Suite) -> Unit): Suite /* this */ + fun removeListener(event: String /* "suite" */, listener: (suite: Suite) -> Unit): Suite /* this */ + fun prependListener(event: String /* "suite" */, listener: (suite: Suite) -> Unit): Suite /* this */ + fun prependOnceListener(event: String /* "suite" */, listener: (suite: Suite) -> Unit): Suite /* this */ + fun emit(name: String /* "suite" */, suite: Suite): Boolean + fun on(event: String /* "test" */, listener: (test: Test) -> Unit): Suite /* this */ + fun once(event: String /* "test" */, listener: (test: Test) -> Unit): Suite /* this */ + fun addListener(event: String /* "test" */, listener: (test: Test) -> Unit): Suite /* this */ + fun removeListener(event: String /* "test" */, listener: (test: Test) -> Unit): Suite /* this */ + fun prependListener(event: String /* "test" */, listener: (test: Test) -> Unit): Suite /* this */ + fun prependOnceListener(event: String /* "test" */, listener: (test: Test) -> Unit): Suite /* this */ + fun emit(name: String /* "test" */, test: Test): Boolean + fun on(event: String /* "run" */, listener: () -> Unit): Suite /* this */ + fun once(event: String /* "run" */, listener: () -> Unit): Suite /* this */ + fun addListener(event: String /* "run" */, listener: () -> Unit): Suite /* this */ + fun removeListener(event: String /* "run" */, listener: () -> Unit): Suite /* this */ + fun prependListener(event: String /* "run" */, listener: () -> Unit): Suite /* this */ + fun prependOnceListener(event: String /* "run" */, listener: () -> Unit): Suite /* this */ + fun emit(name: String /* "run" */): Boolean + fun on(event: String /* "pre-require" */, listener: (context: MochaGlobals, file: String, mocha: _Mocha) -> Unit): Suite /* this */ + fun once(event: String /* "pre-require" */, listener: (context: MochaGlobals, file: String, mocha: _Mocha) -> Unit): Suite /* this */ + fun addListener(event: String /* "pre-require" */, listener: (context: MochaGlobals, file: String, mocha: _Mocha) -> Unit): Suite /* this */ + fun removeListener(event: String /* "pre-require" */, listener: (context: MochaGlobals, file: String, mocha: _Mocha) -> Unit): Suite /* this */ + fun prependListener(event: String /* "pre-require" */, listener: (context: MochaGlobals, file: String, mocha: _Mocha) -> Unit): Suite /* this */ + fun prependOnceListener(event: String /* "pre-require" */, listener: (context: MochaGlobals, file: String, mocha: _Mocha) -> Unit): Suite /* this */ + fun emit(name: String /* "pre-require" */, context: MochaGlobals, file: String, mocha: _Mocha): Boolean + fun on(event: String /* "require" */, listener: (module: Any, file: String, mocha: _Mocha) -> Unit): Suite /* this */ + fun once(event: String /* "require" */, listener: (module: Any, file: String, mocha: _Mocha) -> Unit): Suite /* this */ + fun addListener(event: String /* "require" */, listener: (module: Any, file: String, mocha: _Mocha) -> Unit): Suite /* this */ + fun removeListener(event: String /* "require" */, listener: (module: Any, file: String, mocha: _Mocha) -> Unit): Suite /* this */ + fun prependListener(event: String /* "require" */, listener: (module: Any, file: String, mocha: _Mocha) -> Unit): Suite /* this */ + fun prependOnceListener(event: String /* "require" */, listener: (module: Any, file: String, mocha: _Mocha) -> Unit): Suite /* this */ + fun emit(name: String /* "require" */, module: Any, file: String, mocha: _Mocha): Boolean + fun on(event: String /* "post-require" */, listener: (context: MochaGlobals, file: String, mocha: _Mocha) -> Unit): Suite /* this */ + fun once(event: String /* "post-require" */, listener: (context: MochaGlobals, file: String, mocha: _Mocha) -> Unit): Suite /* this */ + fun addListener(event: String /* "post-require" */, listener: (context: MochaGlobals, file: String, mocha: _Mocha) -> Unit): Suite /* this */ + fun removeListener(event: String /* "post-require" */, listener: (context: MochaGlobals, file: String, mocha: _Mocha) -> Unit): Suite /* this */ + fun prependListener(event: String /* "post-require" */, listener: (context: MochaGlobals, file: String, mocha: _Mocha) -> Unit): Suite /* this */ + fun prependOnceListener(event: String /* "post-require" */, listener: (context: MochaGlobals, file: String, mocha: _Mocha) -> Unit): Suite /* this */ + fun emit(name: String /* "post-require" */, context: MochaGlobals, file: String, mocha: _Mocha): Boolean + fun on(event: String, listener: (args: Any) -> Unit): Suite /* this */ + fun once(event: String, listener: (args: Any) -> Unit): Suite /* this */ + fun addListener(event: String, listener: (args: Any) -> Unit): Suite /* this */ + fun removeListener(event: String, listener: (args: Any) -> Unit): Suite /* this */ + fun prependListener(event: String, listener: (args: Any) -> Unit): Suite /* this */ + fun prependOnceListener(event: String, listener: (args: Any) -> Unit): Suite /* this */ + fun emit(name: String, vararg args: Any): Boolean + open fun beforeAll(): Suite /* this */ = definedExternally + open fun beforeAll(title: String): Suite /* this */ = definedExternally + open fun afterAll(): Suite /* this */ = definedExternally + open fun afterAll(title: String): Suite /* this */ = definedExternally + open fun beforeEach(): Suite /* this */ = definedExternally + open fun beforeEach(title: String): Suite /* this */ = definedExternally + open fun afterEach(): Suite /* this */ = definedExternally + open fun afterEach(title: String): Suite /* this */ = definedExternally + open fun _createHook(title: String): Hook = definedExternally +} +external open class Hook : Runnable { + open var _error: Any = definedExternally + open var type: String /* "hook" */ = definedExternally + open var originalTitle: String = definedExternally + open fun error(): Any = definedExternally + open fun error(err: Any): Unit = definedExternally +} +external open class Test : Runnable { + open var type: String /* "test" */ = definedExternally + open var speed: String /* String /* "slow" */ | String /* "medium" */ | String /* "fast" */ */ = definedExternally + open var err: Error = definedExternally + open fun clone(): Test = definedExternally +} +external interface Stats { + var suites: Number + var tests: Number + var passes: Number + var pending: Number + var failures: Number + var start: Date? get() = definedExternally; set(value) = definedExternally + var end: Date? get() = definedExternally; set(value) = definedExternally + var duration: Number? get() = definedExternally; set(value) = definedExternally +} +external interface ReporterConstructor +external interface MochaOptions { + var ui: dynamic /* String /* "bdd" */ | String /* "tdd" */ | String /* "qunit" */ | String /* "exports" */ */ get() = definedExternally; set(value) = definedExternally + var reporter: dynamic /* String | ReporterConstructor */ get() = definedExternally; set(value) = definedExternally + var reporterOptions: Any? get() = definedExternally; set(value) = definedExternally + var globals: Array? get() = definedExternally; set(value) = definedExternally + var timeout: Number? get() = definedExternally; set(value) = definedExternally + var enableTimeouts: Boolean? get() = definedExternally; set(value) = definedExternally + var retries: Number? get() = definedExternally; set(value) = definedExternally + var bail: Boolean? get() = definedExternally; set(value) = definedExternally + var slow: Number? get() = definedExternally; set(value) = definedExternally + var ignoreLeaks: Boolean? get() = definedExternally; set(value) = definedExternally + var fullStackTrace: Boolean? get() = definedExternally; set(value) = definedExternally + var grep: dynamic /* String | RegExp */ get() = definedExternally; set(value) = definedExternally + var growl: Boolean? get() = definedExternally; set(value) = definedExternally + var useColors: Boolean? get() = definedExternally; set(value) = definedExternally + var inlineDiffs: Boolean? get() = definedExternally; set(value) = definedExternally + var hideDiff: Boolean? get() = definedExternally; set(value) = definedExternally + var asyncOnly: Boolean? get() = definedExternally; set(value) = definedExternally + var delay: Boolean? get() = definedExternally; set(value) = definedExternally + var forbidOnly: Boolean? get() = definedExternally; set(value) = definedExternally + var forbidPending: Boolean? get() = definedExternally; set(value) = definedExternally + var noHighlighting: Boolean? get() = definedExternally; set(value) = definedExternally + var allowUncaught: Boolean? get() = definedExternally; set(value) = definedExternally +} +external interface MochaInstanceOptions : MochaOptions { + var files: Array? get() = definedExternally; set(value) = definedExternally +} +external interface MochaGlobals { + var before: HookFunction + var after: HookFunction + var beforeEach: HookFunction + var afterEach: HookFunction + var describe: SuiteFunction + var context: SuiteFunction + var xdescribe: (title: String, fn: (`this`: Suite) -> Unit) -> dynamic /* Unit | Suite */ + var xcontext: (title: String, fn: (`this`: Suite) -> Unit) -> dynamic /* Unit | Suite */ + var it: TestFunction + var specify: TestFunction + var xit: PendingTestFunction + var xspecify: PendingTestFunction + var suiteSetup: HookFunction + var suiteTeardown: HookFunction + var setup: HookFunction + var teardown: HookFunction + var suite: SuiteFunction + var test: TestFunction + var run: Any? +} +external interface ReporterContributions { + var Base: Any? + var base: Any? + var Dot: Any? + var dot: Any? + var TAP: Any? + var tap: Any? + var JSON: Any? + var json: Any? + var HTML: Any? + var html: Any? + var List: Any? + var list: Any? + var Min: Any? + var min: Any? + var Spec: Any? + var spec: Any? + var Nyan: Any? + var nyan: Any? + var XUnit: Any? + var xunit: Any? + var Markdown: Any? + var markdown: Any? + var Progress: Any? + var progress: Any? + var Landing: Any? + var landing: Any? + var JSONStream: Any? +} +external interface InterfaceContributions { + var bdd: Any? + var tdd: Any? + var qunit: Any? + var exports: Any? +} +external interface IContext { + var test: IRunnable? get() = definedExternally; set(value) = definedExternally + fun runnable(): IRunnable? + fun runnable(runnable: IRunnable): IContext + fun timeout(): Number + fun timeout(timeout: Number): IContext + fun enableTimeouts(enableTimeouts: Boolean): IContext + fun slow(slow: Number): IContext + fun skip(): IContext + fun retries(): Number + fun retries(retries: Number): IContext +} +external interface ISuiteCallbackContext { + fun timeout(ms: String): ISuiteCallbackContext /* this */ + fun timeout(ms: Number): ISuiteCallbackContext /* this */ + fun retries(n: Number): ISuiteCallbackContext /* this */ + fun slow(ms: Number): ISuiteCallbackContext /* this */ +} +external interface IHookCallbackContext { + fun skip(): IHookCallbackContext /* this */ + fun timeout(ms: String): IHookCallbackContext /* this */ + fun timeout(ms: Number): IHookCallbackContext /* this */ + @nativeGetter + operator fun get(index: String): Any? + @nativeSetter + operator fun set(index: String, value: Any) +} +external interface ITestCallbackContext { + fun skip(): ITestCallbackContext /* this */ + fun timeout(ms: String): ITestCallbackContext /* this */ + fun timeout(ms: Number): ITestCallbackContext /* this */ + fun retries(n: Number): ITestCallbackContext /* this */ + fun slow(ms: Number): ITestCallbackContext /* this */ + @nativeGetter + operator fun get(index: String): Any? + @nativeSetter + operator fun set(index: String, value: Any) +} +external interface IRunnable : EventEmitter { + var title: String + var fn: Function<*>? + var async: Boolean + var sync: Boolean + var timedOut: Boolean + fun timeout(n: String): IRunnable /* this */ + fun timeout(n: Number): IRunnable /* this */ + var duration: Number? get() = definedExternally; set(value) = definedExternally +} +external interface ISuite { + var ctx: IContext + var parent: ISuite? + var root: Boolean + var title: String + var suites: Array + var tests: Array + fun bail(): Boolean + fun bail(bail: Boolean): ISuite + fun fullTitle(): String + fun retries(): Number + fun retries(retries: Number): ISuite + fun slow(): Number + fun slow(slow: Number): ISuite + fun timeout(): Number + fun timeout(timeout: Number): ISuite +} +external interface ITest : IRunnable { + var body: String? get() = definedExternally; set(value) = definedExternally + var file: String? get() = definedExternally; set(value) = definedExternally + var parent: ISuite? get() = definedExternally; set(value) = definedExternally + var pending: Boolean + var state: dynamic /* String /* "failed" */ | String /* "passed" */ */ get() = definedExternally; set(value) = definedExternally + var type: String /* "test" */ + fun fullTitle(): String +} +external interface IHook : IRunnable { + var ctx: IContext? get() = definedExternally; set(value) = definedExternally + var parent: ISuite? get() = definedExternally; set(value) = definedExternally + var type: String /* "hook" */ + fun error(err: Error) +} +external interface IBeforeAndAfterContext : IHookCallbackContext { + var currentTest: ITest? get() = definedExternally; set(value) = definedExternally +} +external interface IRunner : EventEmitter { + var asyncOnly: Boolean? get() = definedExternally; set(value) = definedExternally + var stats: Stats? get() = definedExternally; set(value) = definedExternally + var started: Boolean + var suite: ISuite + var total: Number + var failures: Number + var forbidOnly: Boolean? get() = definedExternally; set(value) = definedExternally + var forbidPending: Boolean? get() = definedExternally; set(value) = definedExternally + var fullStackTrace: Boolean? get() = definedExternally; set(value) = definedExternally + var ignoreLeaks: Boolean? get() = definedExternally; set(value) = definedExternally + fun grep(re: RegExp, invert: Boolean): IRunner /* this */ + fun grepTotal(suite: ISuite): Number + fun globals(arr: Array): dynamic /* Array | IRunner */ + fun abort(): IRunner /* this */ + fun run(fn: ((failures: Number) -> Unit)? = definedExternally /* null */): IRunner /* this */ +} + +external interface IContextDefinition +external interface ITestDefinition diff --git a/externals/mocha/v5/src/index.Mocha.reporters.Base.cursor.kt b/externals/mocha/v5/src/index.Mocha.reporters.Base.cursor.kt new file mode 100644 index 0000000..ff3abb4 --- /dev/null +++ b/externals/mocha/v5/src/index.Mocha.reporters.Base.cursor.kt @@ -0,0 +1,24 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS", "EXTERNAL_DELEGATION", "NESTED_CLASS_IN_EXTERNAL_INTERFACE") +@file:[JsModule("mocha") JsQualifier("reporters.Base.cursor")] +package js.externals.mocha.Mocha.reporters.Base.cursor + +import kotlin.js.* +import kotlin.js.Json +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external fun hide(): Unit = definedExternally +external fun show(): Unit = definedExternally +external fun deleteLine(): Unit = definedExternally +external fun beginningOfLine(): Unit = definedExternally +external fun CR(): Unit = definedExternally diff --git a/externals/mocha/v5/src/index.Mocha.reporters.Base.kt b/externals/mocha/v5/src/index.Mocha.reporters.Base.kt new file mode 100644 index 0000000..ce6dbaa --- /dev/null +++ b/externals/mocha/v5/src/index.Mocha.reporters.Base.kt @@ -0,0 +1,60 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS", "EXTERNAL_DELEGATION", "NESTED_CLASS_IN_EXTERNAL_INTERFACE") +@file:[JsModule("mocha") JsQualifier("reporters.Base")] +package js.externals.mocha.Mocha.reporters.Base + +import js.externals.mocha.Mocha.Test +import kotlin.js.* +import kotlin.js.Json +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external var useColors: Boolean = definedExternally +external var inlineDiffs: Boolean = definedExternally +external var colors: ColorMap = definedExternally +external interface ColorMap { + var pass: Number + var fail: Number + var pending: Number + var suite: Number + var checkmark: Number + var fast: Number + var medium: Number + var slow: Number + var green: Number + var light: Number + var progress: Number + var plane: Number + var runway: Number + @nativeGetter + operator fun get(key: String): Number? + @nativeSetter + operator fun set(key: String, value: Number) +} +external var symbols: SymbolMap = definedExternally +external interface SymbolMap { + var ok: String + var err: String + var dot: String + var comma: String + var bang: String + @nativeGetter + operator fun get(key: String): String? + @nativeSetter + operator fun set(key: String, value: String) +} +external fun color(type: String, str: String): String = definedExternally +external object window { + var width: Number = definedExternally +} +external fun generateDiff(actual: String, expected: String): String = definedExternally +external fun list(failures: Array): Unit = definedExternally diff --git a/externals/mocha/v5/src/index.Mocha.reporters.kt b/externals/mocha/v5/src/index.Mocha.reporters.kt new file mode 100644 index 0000000..5a52f2c --- /dev/null +++ b/externals/mocha/v5/src/index.Mocha.reporters.kt @@ -0,0 +1,95 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS", "EXTERNAL_DELEGATION", "NESTED_CLASS_IN_EXTERNAL_INTERFACE") +@file:[JsModule("mocha") JsNonModule JsQualifier("reporters")] +package Mocha.reporters + +import js.externals.mocha.Mocha.* +import kotlin.js.* +import org.w3c.dom.* + +@JsName("Base") +external open class _Base { + constructor(runner: Runner, options: MochaOptions? = definedExternally /* null */) + constructor(runner: IRunner, options: MochaOptions? = definedExternally /* null */) + open var stats: Stats = definedExternally + open var failures: Array = definedExternally + open var runner: Runner = definedExternally + open fun epilogue(): Unit = definedExternally + open fun done(failures: Number, fn: ((failures: Number) -> Unit)? = definedExternally /* null */): Unit = definedExternally +} +external open class Dot : _Base +external open class Doc : _Base +external open class TAP : _Base +external open class JSON : _Base +external open class HTML : _Base { + open fun suiteURL(suite: Suite): String = definedExternally + open fun testURL(test: Test): String = definedExternally + open fun addCodeToggle(el: HTMLLIElement, contents: String): Unit = definedExternally +} +external open class List : _Base +external open class Min : _Base +external open class Spec : _Base +external open class Nyan : _Base { + open var colorIndex: Any = definedExternally + open var numberOfLines: Any = definedExternally + open var rainbowColors: Any = definedExternally + open var scoreboardWidth: Any = definedExternally + open var tick: Any = definedExternally + open var trajectories: Any = definedExternally + open var trajectoryWidthMax: Any = definedExternally + open var draw: Any = definedExternally + open var drawScoreboard: Any = definedExternally + open var appendRainbow: Any = definedExternally + open var drawRainbow: Any = definedExternally + open var drawNyanCat: Any = definedExternally + open var face: Any = definedExternally + open var cursorUp: Any = definedExternally + open var cursorDown: Any = definedExternally + open var generateColors: Any = definedExternally + open var rainbowify: Any = definedExternally +} +external open class XUnit : _Base { + constructor(runner: Runner, options: MochaOptions? = definedExternally /* null */) + constructor(runner: IRunner, options: MochaOptions? = definedExternally /* null */) + open fun done(failures: Number, fn: (failures: Number) -> Unit): Unit = definedExternally + open fun write(line: String): Unit = definedExternally + open fun test(test: Test): Unit = definedExternally + @JsName("MochaOptions") + interface _MochaOptions : MochaOptions { + override var reporterOptions: Any? get() = definedExternally; set(value) = definedExternally + } + interface ReporterOptions { + var output: String? get() = definedExternally; set(value) = definedExternally + var suiteName: String? get() = definedExternally; set(value) = definedExternally + } +} +external open class Markdown : _Base +external open class Progress : _Base { + constructor(runner: Runner, options: _MochaOptions? = definedExternally /* null */) + constructor(runner: IRunner, options: _MochaOptions? = definedExternally /* null */) + @JsName("MochaOptions") + interface _MochaOptions : MochaOptions { + override var reporterOptions: Any? get() = definedExternally; set(value) = definedExternally + } + interface ReporterOptions { + var open: String? get() = definedExternally; set(value) = definedExternally + var complete: String? get() = definedExternally; set(value) = definedExternally + var incomplete: String? get() = definedExternally; set(value) = definedExternally + var close: String? get() = definedExternally; set(value) = definedExternally + var verbose: Boolean? get() = definedExternally; set(value) = definedExternally + } +} +external open class Landing : _Base +external open class JSONStream : _Base +external var base: Any? = definedExternally +external var dot: Any? = definedExternally +external var doc: Any? = definedExternally +external var tap: Any? = definedExternally +external var json: Any? = definedExternally +external var html: Any? = definedExternally +external var list: Any? = definedExternally +external var spec: Any? = definedExternally +external var nyan: Any? = definedExternally +external var xunit: Any? = definedExternally +external var markdown: Any? = definedExternally +external var progress: Any? = definedExternally +external var landing: Any? = definedExternally diff --git a/externals/mocha/v5/src/index.Mocha.utils.kt b/externals/mocha/v5/src/index.Mocha.utils.kt new file mode 100644 index 0000000..961dae9 --- /dev/null +++ b/externals/mocha/v5/src/index.Mocha.utils.kt @@ -0,0 +1,29 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS", "EXTERNAL_DELEGATION", "NESTED_CLASS_IN_EXTERNAL_INTERFACE") +@file:[JsModule("mocha") JsQualifier("utils")] +package js.externals.mocha.Mocha.utils + +import kotlin.js.* +import kotlin.js.Json +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external fun slug(str: String): String = definedExternally +external fun clean(str: String): String = definedExternally +external fun highlight(js: String): String = definedExternally +external fun type(value: Any): String = definedExternally +external fun stringify(value: Any): String = definedExternally +external fun canonicalize(value: Any, stack: Array, typeHint: String): Any = definedExternally +external fun lookupFiles(filepath: String, extensions: Array? = definedExternally /* null */, recursive: Boolean? = definedExternally /* null */): Array = definedExternally +external fun undefinedError(): Error = definedExternally +external fun getError(err: Error?): Error = definedExternally +external fun stackTraceFilter(): (stack: String) -> String = definedExternally diff --git a/externals/mocha/v5/src/index.NodeJS.kt b/externals/mocha/v5/src/index.NodeJS.kt new file mode 100644 index 0000000..10ea889 --- /dev/null +++ b/externals/mocha/v5/src/index.NodeJS.kt @@ -0,0 +1,8 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS", "EXTERNAL_DELEGATION", "NESTED_CLASS_IN_EXTERNAL_INTERFACE") +@file:JsQualifier("NodeJS") +package js.externals.mocha.NodeJS + +import js.externals.mocha.Mocha.MochaGlobals + +external interface EventEmitter +external interface Global : MochaGlobals diff --git a/externals/mocha/v5/src/index.kt b/externals/mocha/v5/src/index.kt new file mode 100644 index 0000000..9714b07 --- /dev/null +++ b/externals/mocha/v5/src/index.kt @@ -0,0 +1,94 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS", "EXTERNAL_DELEGATION", "NESTED_CLASS_IN_EXTERNAL_INTERFACE") + +package js.externals.mocha + +import js.externals.mocha.Mocha.* +import kotlin.js.* + +@JsModule("mocha") +@JsNonModule +@JsName("Mocha") +external open class _Mocha(options: MochaOptions? = definedExternally /* null */) { + open var _growl: Any = definedExternally + open var _reporter: Any = definedExternally + open var _ui: Any = definedExternally + open var suite: Suite = definedExternally + open var files: Array = definedExternally + open var options: MochaInstanceOptions = definedExternally + open fun bail(bail: Boolean? = definedExternally /* null */): _Mocha /* this */ = definedExternally + open fun addFile(file: String): _Mocha /* this */ = definedExternally + open fun reporter(reporter: dynamic /* String /* "Base" */ | String /* "base" */ | String /* "Dot" */ | String /* "dot" */ | String /* "TAP" */ | String /* "tap" */ | String /* "JSON" */ | String /* "json" */ | String /* "HTML" */ | String /* "html" */ | String /* "List" */ | String /* "list" */ | String /* "Min" */ | String /* "min" */ | String /* "Spec" */ | String /* "spec" */ | String /* "Nyan" */ | String /* "nyan" */ | String /* "XUnit" */ | String /* "xunit" */ | String /* "Markdown" */ | String /* "markdown" */ | String /* "Progress" */ | String /* "progress" */ | String /* "Landing" */ | String /* "landing" */ | String /* "JSONStream" */ | String /* "json-stream" */ */, reporterOptions: Any? = definedExternally /* null */): _Mocha /* this */ = definedExternally + open fun reporter(reporter: String? = definedExternally /* null */, reporterOptions: Any? = definedExternally /* null */): _Mocha /* this */ = definedExternally + open fun reporter(reporter: ReporterConstructor? = definedExternally /* null */, reporterOptions: Any? = definedExternally /* null */): _Mocha /* this */ = definedExternally + open fun ui(name: String /* "bdd" */): _Mocha /* this */ = definedExternally + open fun ui(name: String /* "tdd" */): _Mocha /* this */ = definedExternally + open fun ui(name: String /* "qunit" */): _Mocha /* this */ = definedExternally + open fun ui(name: String /* "exports" */): _Mocha /* this */ = definedExternally + open fun ui(name: String? = definedExternally /* null */): _Mocha /* this */ = definedExternally + open fun fgrep(str: String): _Mocha /* this */ = definedExternally + open fun grep(re: String): _Mocha /* this */ = definedExternally + open fun grep(re: RegExp): _Mocha /* this */ = definedExternally + open fun invert(): _Mocha /* this */ = definedExternally + open fun ignoreLeaks(ignore: Boolean): _Mocha /* this */ = definedExternally + open fun checkLeaks(): _Mocha /* this */ = definedExternally + open fun fullTrace(): _Mocha /* this */ = definedExternally + open fun growl(): _Mocha /* this */ = definedExternally + open fun globals(globals: String): _Mocha /* this */ = definedExternally + open fun globals(globals: Array): _Mocha /* this */ = definedExternally + open fun useColors(colors: Boolean): _Mocha /* this */ = definedExternally + open fun useInlineDiffs(inlineDiffs: Boolean): _Mocha /* this */ = definedExternally + open fun hideDiff(hideDiff: Boolean): _Mocha /* this */ = definedExternally + open fun timeout(timeout: String): _Mocha /* this */ = definedExternally + open fun timeout(timeout: Number): _Mocha /* this */ = definedExternally + open fun retries(n: Number): _Mocha /* this */ = definedExternally + open fun slow(slow: String): _Mocha /* this */ = definedExternally + open fun slow(slow: Number): _Mocha /* this */ = definedExternally + open fun enableTimeouts(enabled: Boolean? = definedExternally /* null */): _Mocha /* this */ = definedExternally + open fun asyncOnly(): _Mocha /* this */ = definedExternally + open fun noHighlighting(): _Mocha /* this */ = definedExternally + open fun allowUncaught(): Boolean = definedExternally + open fun delay(): Boolean = definedExternally + open fun forbidOnly(): Boolean = definedExternally + open fun forbidPending(): Boolean = definedExternally + open fun run(fn: ((failures: Number) -> Unit)? = definedExternally /* null */): Runner = definedExternally + open fun loadFiles(fn: (() -> Unit)? = definedExternally /* null */): Unit = definedExternally + open fun reporter(): _Mocha /* this */ = definedExternally +} + +external fun run(): Unit = definedExternally +external var before: HookFunction = definedExternally +external var suiteSetup: HookFunction = definedExternally +external var after: HookFunction = definedExternally +external var suiteTeardown: HookFunction = definedExternally +external var beforeEach: HookFunction = definedExternally +external var setup: HookFunction = definedExternally +external var afterEach: HookFunction = definedExternally +external var teardown: HookFunction = definedExternally +external var describe: SuiteFunction = definedExternally +external var context: SuiteFunction = definedExternally +external var suite: SuiteFunction = definedExternally + +@JsName("xdescribe") +external var _xdescribe: (title: String, fn: () -> Unit) -> dynamic /* Unit | Suite */ = definedExternally +@JsName("xcontext") +external var _xcontext: (title: String, fn: () -> Unit) -> dynamic /* Unit | Suite */ = definedExternally + +external var it: TestFunction = definedExternally +external var specify: TestFunction = definedExternally +external var test: TestFunction = definedExternally +external var xit: PendingTestFunction = definedExternally +external var xspecify: PendingTestFunction = definedExternally +external var mocha: BrowserMocha = definedExternally +external interface BrowserMocha : _Mocha { + fun throwError(err: Any): Any? + fun setup(opts: String? /* "bdd" */ = definedExternally /* null */): BrowserMocha /* this */ + fun setup(opts: String? /* "tdd" */ = definedExternally /* null */): BrowserMocha /* this */ + fun setup(opts: String? /* "qunit" */ = definedExternally /* null */): BrowserMocha /* this */ + fun setup(opts: String? /* "exports" */ = definedExternally /* null */): BrowserMocha /* this */ + fun setup(opts: MochaSetupOptions? = definedExternally /* null */): BrowserMocha /* this */ + fun setup(): BrowserMocha /* this */ +} +external interface MochaSetupOptions : MochaOptions { + var require: Array? get() = definedExternally; set(value) = definedExternally + var fullTrace: Boolean? get() = definedExternally; set(value) = definedExternally +} diff --git a/externals/mocha/v5/src/index.mocha.lib.interfaces.common.common.kt b/externals/mocha/v5/src/index.mocha.lib.interfaces.common.common.kt new file mode 100644 index 0000000..0ddad86 --- /dev/null +++ b/externals/mocha/v5/src/index.mocha.lib.interfaces.common.common.kt @@ -0,0 +1,70 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS", "EXTERNAL_DELEGATION", "NESTED_CLASS_IN_EXTERNAL_INTERFACE") +@file:JsModule("mocha/lib/interfaces/common") +package js.externals.mocha.lib.interfaces.common.common + +import js.externals.mocha.Mocha.Context +import js.externals.mocha.Mocha.Suite +import js.externals.mocha.Mocha.Test +import js.externals.mocha._Mocha +import kotlin.js.Promise +import kotlin.js.Json +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +external interface CommonFunctions { + fun runWithSuite(suite: Suite): () -> Unit + // defined as external functions +// fun before(fn: ((`this`: Context, done: (err: Any? /*= null*/) -> Unit) -> Unit)? = definedExternally /* null */) +// fun before(fn: ((`this`: Context) -> Promise)? = definedExternally /* null */) +// fun before(name: String, fn: ((`this`: Context, done: (err: Any? /*= null*/) -> Unit) -> Unit)? = definedExternally /* null */) +// fun before(name: String, fn: ((`this`: Context) -> Promise)? = definedExternally /* null */) +// fun after(fn: ((`this`: Context, done: (err: Any? /*= null*/) -> Unit) -> Unit)? = definedExternally /* null */) +// fun after(fn: ((`this`: Context) -> Promise)? = definedExternally /* null */) +// fun after(name: String, fn: ((`this`: Context, done: (err: Any? /*= null*/) -> Unit) -> Unit)? = definedExternally /* null */) +// fun after(name: String, fn: ((`this`: Context) -> Promise)? = definedExternally /* null */) +// fun beforeEach(fn: ((`this`: Context, done: (err: Any? /*= null*/) -> Unit) -> Unit)? = definedExternally /* null */) +// fun beforeEach(fn: ((`this`: Context) -> Promise)? = definedExternally /* null */) +// fun beforeEach(name: String, fn: ((`this`: Context, done: (err: Any? /*= null*/) -> Unit) -> Unit)? = definedExternally /* null */) +// fun beforeEach(name: String, fn: ((`this`: Context) -> Promise)? = definedExternally /* null */) +// fun afterEach(fn: ((`this`: Context, done: (err: Any? /*= null*/) -> Unit) -> Unit)? = definedExternally /* null */) +// fun afterEach(fn: ((`this`: Context) -> Promise)? = definedExternally /* null */) +// fun afterEach(name: String, fn: ((`this`: Context, done: (err: Any? /*= null*/) -> Unit) -> Unit)? = definedExternally /* null */) +// fun afterEach(name: String, fn: ((`this`: Context) -> Promise)? = definedExternally /* null */) + var suite: SuiteFunctions + var test: TestFunctions + fun before() + fun before(name: String) + fun after() + fun after(name: String) + fun beforeEach() + fun beforeEach(name: String) + fun afterEach() + fun afterEach(name: String) +} +external interface CreateOptions { + var title: String + var fn: ((`this`: Suite) -> Unit)? get() = definedExternally; set(value) = definedExternally + var pending: Boolean? get() = definedExternally; set(value) = definedExternally + var file: String? get() = definedExternally; set(value) = definedExternally + var isOnly: Boolean? get() = definedExternally; set(value) = definedExternally +} +external interface SuiteFunctions { + fun only(opts: CreateOptions): Suite + fun skip(opts: CreateOptions): Suite + fun create(opts: CreateOptions): Suite +} +external interface TestFunctions { + fun only(mocha: _Mocha, test: Test): Test + fun skip(title: String) + fun retries(n: Number) +} diff --git a/externals/mocha/v5/src/index.mocha.lib.interfaces.common.kt b/externals/mocha/v5/src/index.mocha.lib.interfaces.common.kt new file mode 100644 index 0000000..098d156 --- /dev/null +++ b/externals/mocha/v5/src/index.mocha.lib.interfaces.common.kt @@ -0,0 +1,12 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS", "EXTERNAL_DELEGATION", "NESTED_CLASS_IN_EXTERNAL_INTERFACE") + +package js.externals.mocha.lib.interfaces.common + +import js.externals.mocha.Mocha.MochaGlobals +import js.externals.mocha.Mocha.Suite +import js.externals.mocha._Mocha +import js.externals.mocha.lib.interfaces.common.common.CommonFunctions +import kotlin.js.* + +@JsModule("mocha/lib/interfaces/common") +external fun common(suites: Array, context: MochaGlobals, mocha: _Mocha): CommonFunctions = definedExternally diff --git a/externals/mocha/v5/src/index.mocha.lib.ms.kt b/externals/mocha/v5/src/index.mocha.lib.ms.kt new file mode 100644 index 0000000..a1c3fb3 --- /dev/null +++ b/externals/mocha/v5/src/index.mocha.lib.ms.kt @@ -0,0 +1,23 @@ +@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS", "EXTERNAL_DELEGATION", "NESTED_CLASS_IN_EXTERNAL_INTERFACE") + +package js.externals.mocha.lib.ms + +import kotlin.js.* +import kotlin.js.Json +import org.khronos.webgl.* +import org.w3c.dom.* +import org.w3c.dom.events.* +import org.w3c.dom.parsing.* +import org.w3c.dom.svg.* +import org.w3c.dom.url.* +import org.w3c.fetch.* +import org.w3c.files.* +import org.w3c.notifications.* +import org.w3c.performance.* +import org.w3c.workers.* +import org.w3c.xhr.* + +@JsModule("mocha/lib/ms") +external fun milliseconds(`val`: String): Number = definedExternally +@JsModule("mocha/lib/ms") +external fun milliseconds(`val`: Number): String = definedExternally diff --git a/externals/mocha/v5/src/moch.utils.kt b/externals/mocha/v5/src/moch.utils.kt new file mode 100644 index 0000000..d19c639 --- /dev/null +++ b/externals/mocha/v5/src/moch.utils.kt @@ -0,0 +1,96 @@ +package js.externals.mocha.kotlinUtils + +import js.externals.mocha.Mocha.* +import js.externals.mocha._xcontext +import js.externals.mocha._xdescribe +import js.externals.mocha.lib.interfaces.common.common.CommonFunctions +import kotlin.js.Promise + +external interface DoneType { + @nativeInvoke + operator fun invoke(err: Any? = definedExternally) +} + +inline operator fun SuiteFunction.invoke(description: String, crossinline fn: Suite.() -> dynamic): Suite = asDynamic()(description) { fn(js("this")) } + +inline operator fun ExclusiveSuiteFunction.invoke(description: String, crossinline fn: Suite.() -> dynamic): Suite = asDynamic()(description) { fn(js("this")) } + +inline fun TestFunction.async(crossinline fn: Context.(DoneType) -> dynamic) = asDynamic()() { d -> fn(js("this"), d) } +inline fun TestFunction.async(title: String, crossinline fn: Context.(DoneType) -> dynamic) = asDynamic()(title) { d -> fn(js("this"), d) } + +inline operator fun TestFunction.invoke(crossinline fn: Context.() -> dynamic): Test = asDynamic()() { fn(js("this")) } +inline operator fun TestFunction.invoke(title: String, crossinline fn: Context.() -> dynamic): Test = asDynamic()(title) { fn(js("this")) } + +inline fun PendingTestFunction.async(crossinline fn: Context.(DoneType) -> dynamic): Test = asDynamic()() { d -> fn(js("this"), d) } +inline fun PendingTestFunction.async(title: String, crossinline fn: Context.(DoneType) -> dynamic): Test = asDynamic()(title) { d -> fn(js("this"), d) } + +inline operator fun PendingTestFunction.invoke(crossinline fn: Context.() -> dynamic): Test = asDynamic()() { fn(js("this")) } +inline operator fun PendingTestFunction.invoke(title: String, crossinline fn: Context.() -> dynamic): Test = asDynamic()(title) { fn(js("this")) } + +inline fun ExclusiveTestFunction.async(crossinline fn: Context.(DoneType) -> dynamic): Test = asDynamic()() { d -> fn(js("this"), d) } +inline fun ExclusiveTestFunction.async(title: String, crossinline fn: Context.(DoneType) -> dynamic): Test = asDynamic()(title) { d -> fn(js("this"), d) } + +inline operator fun ExclusiveTestFunction.invoke(crossinline fn: Context.() -> dynamic): Test = asDynamic()() { fn(js("this")) } +inline operator fun ExclusiveTestFunction.invoke(title: String, crossinline fn: Context.() -> dynamic): Test = asDynamic()(title) { fn(js("this")) } + +inline operator fun HookFunction.invoke(crossinline fn: Context.() -> dynamic): Test = asDynamic()() { fn(js("this")) } +inline operator fun HookFunction.invoke(name: String, crossinline fn: Context.() -> dynamic): Test = asDynamic()(name) { fn(js("this")) } + +inline fun HookFunction.async(crossinline fn: Context.(DoneType) -> dynamic): Test = asDynamic()() { d -> fn(js("this"), d) } +inline fun HookFunction.async(name: String, crossinline fn: Context.(DoneType) -> dynamic): Test = asDynamic()(name) { d -> fn(js("this"), d) } + +inline fun Suite.beforeAll(crossinline fn: Context.() -> dynamic): Suite = asDynamic().beforeAll { fn(js("this")) } +inline fun Suite.beforeAll(title: String, crossinline fn: Context.() -> dynamic): Suite = asDynamic().beforeAll(title) { fn(js("this")) } +inline fun Suite.beforeAllAsync(crossinline fn: Context.(DoneType) -> dynamic): Suite = asDynamic().beforeAll { d -> fn(js("this"), d) } +inline fun Suite.beforeAllAsync(title: String, crossinline fn: Context.(DoneType) -> dynamic): Suite = asDynamic().beforeAll(title) { d -> fn(js("this"), d) } + +inline fun Suite.afterAll(crossinline fn: Context.() -> dynamic): Suite = asDynamic().afterAll { fn(js("this")) } +inline fun Suite.afterAll(title: String, crossinline fn: Context.() -> dynamic): Suite = asDynamic().afterAll(title) { fn(js("this")) } +inline fun Suite.afterAllAsync(crossinline fn: Context.(DoneType) -> dynamic): Suite = asDynamic().afterAll { d -> fn(js("this"), d) } +inline fun Suite.afterAllAsync(title: String, crossinline fn: Context.(DoneType) -> dynamic): Suite = asDynamic().afterAll(title) { d -> fn(js("this"), d) } + +inline fun Suite.beforeEach(crossinline fn: Context.() -> dynamic): Suite = asDynamic().beforeEach { fn(js("this")) } +inline fun Suite.beforeEach(title: String, crossinline fn: Context.() -> dynamic): Suite = asDynamic().beforeEach(title) { fn(js("this")) } +inline fun Suite.beforeEachAsync(crossinline fn: Context.(DoneType) -> dynamic): Suite = asDynamic().beforeEach { d -> fn(js("this"), d) } +inline fun Suite.beforeEachAsync(title: String, crossinline fn: Context.(DoneType) -> dynamic): Suite = asDynamic().beforeEach(title) { d -> fn(js("this"), d) } + +inline fun Suite.afterEach(crossinline fn: Context.() -> dynamic): Suite = asDynamic().afterEach { fn(js("this")) } +inline fun Suite.afterEach(title: String, crossinline fn: Context.() -> dynamic): Suite = asDynamic().afterEach(title) { fn(js("this")) } +inline fun Suite.afterEachAsync(crossinline fn: Context.(DoneType) -> dynamic): Suite = asDynamic().afterEach { d -> fn(js("this"), d) } +inline fun Suite.afterEachAsync(title: String, crossinline fn: Context.(DoneType) -> dynamic): Suite = asDynamic().afterEach(title) { d -> fn(js("this"), d) } + +inline fun Suite._createHook(title: String, crossinline fn: Context.() -> dynamic): Suite = asDynamic()._createHook(title) { fn(js("this")) } +inline fun Suite._createHook(title: String, crossinline fn: Context.(DoneType) -> dynamic): Suite = asDynamic()._createHook(title) { d -> fn(js("this"), d) } + + +inline operator fun IContextDefinition.invoke(description: String, crossinline callback: ISuiteCallbackContext.() -> Unit): ISuite = asDynamic()(description) { callback(js("this")) } +inline fun IContextDefinition.only(description: String, crossinline callback: ISuiteCallbackContext.() -> Unit): ISuite = asDynamic().only(description) { callback(js("this")) } +inline fun IContextDefinition.skip(description: String, crossinline callback: ISuiteCallbackContext.() -> Unit) = asDynamic().skip(description) { callback(js("this")) } + +inline operator fun ITestDefinition.invoke(description: String, crossinline callback: ITestCallbackContext.(DoneType) -> Unit): dynamic = asDynamic()(description) { d -> callback(js("this"), d) } +inline fun ITestDefinition.only(description: String, crossinline callback: ITestCallbackContext.(DoneType) -> Unit): dynamic = asDynamic().only(description) { d -> callback(js("this"), d) } +inline fun ITestDefinition.skip(description: String, crossinline callback: ITestCallbackContext.(DoneType) -> Unit): dynamic = asDynamic().skip(description) { d -> callback(js("this"), d) } + + +fun xdescribe(title: String, fn: Suite.() -> Unit): dynamic = _xdescribe(title) { fn(js("this")) } +fun xcontext(title: String, fn: Suite.() -> Unit): dynamic = _xcontext(title) { fn(js("this")) } + +inline fun CommonFunctions.beforeAll(crossinline fn: Context.() -> dynamic) = asDynamic().beforeAll { fn(js("this")) } +inline fun CommonFunctions.beforeAll(title: String, crossinline fn: Context.() -> dynamic) = asDynamic().beforeAll(title) { fn(js("this")) } +inline fun CommonFunctions.beforeAllAsync(crossinline fn: Context.(DoneType) -> dynamic) = asDynamic().beforeAll { d -> fn(js("this"), d) } +inline fun CommonFunctions.beforeAllAsync(title: String, crossinline fn: Context.(DoneType) -> dynamic) = asDynamic().beforeAll(title) { d -> fn(js("this"), d) } + +inline fun CommonFunctions.afterAll(crossinline fn: Context.() -> dynamic) = asDynamic().afterAll { fn(js("this")) } +inline fun CommonFunctions.afterAll(title: String, crossinline fn: Context.() -> dynamic) = asDynamic().afterAll(title) { fn(js("this")) } +inline fun CommonFunctions.afterAllAsync(crossinline fn: Context.(DoneType) -> dynamic) = asDynamic().afterAll { d -> fn(js("this"), d) } +inline fun CommonFunctions.afterAllAsync(title: String, crossinline fn: Context.(DoneType) -> dynamic) = asDynamic().afterAll(title) { d -> fn(js("this"), d) } + +inline fun CommonFunctions.beforeEach(crossinline fn: Context.() -> dynamic) = asDynamic().beforeEach { fn(js("this")) } +inline fun CommonFunctions.beforeEach(title: String, crossinline fn: Context.() -> dynamic) = asDynamic().beforeEach(title) { fn(js("this")) } +inline fun CommonFunctions.beforeEachAsync(crossinline fn: Context.(DoneType) -> dynamic) = asDynamic().beforeEach { d -> fn(js("this"), d) } +inline fun CommonFunctions.beforeEachAsync(title: String, crossinline fn: Context.(DoneType) -> dynamic) = asDynamic().beforeEach(title) { d -> fn(js("this"), d) } + +inline fun CommonFunctions.afterEach(crossinline fn: Context.() -> dynamic) = asDynamic().afterEach { fn(js("this")) } +inline fun CommonFunctions.afterEach(title: String, crossinline fn: Context.() -> dynamic) = asDynamic().afterEach(title) { fn(js("this")) } +inline fun CommonFunctions.afterEachAsync(crossinline fn: Context.(DoneType) -> dynamic) = asDynamic().afterEach { d -> fn(js("this"), d) } +inline fun CommonFunctions.afterEachAsync(title: String, crossinline fn: Context.(DoneType) -> dynamic) = asDynamic().afterEach(title) { d -> fn(js("this"), d) } \ No newline at end of file From df75ba1f90bda54ec6f4f350045adf4a823341c0 Mon Sep 17 00:00:00 2001 From: Roman Artemev Date: Mon, 9 Apr 2018 15:02:13 +0300 Subject: [PATCH 2/2] Update language version --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index b69ae94..06cd6eb 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ import groovy.json.JsonOutput import java.nio.file.Paths buildscript { - ext.kotlin_version = '1.2.20' + ext.kotlin_version = '1.2.51' repositories { mavenCentral()