summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--testing/mod.ts23
1 files changed, 22 insertions, 1 deletions
diff --git a/testing/mod.ts b/testing/mod.ts
index d1ddb9c8c..51fa62cea 100644
--- a/testing/mod.ts
+++ b/testing/mod.ts
@@ -69,8 +69,29 @@ function print(txt: string, newline: boolean = true): void {
Deno.stdout.writeSync(encoder.encode(`${txt}`));
}
+declare global {
+ interface Window {
+ /**
+ * A global property to collect all registered test cases.
+ *
+ * It is required because user's code can import multiple versions
+ * of `testing` module.
+ *
+ * If test cases aren't registered in a globally shared
+ * object, then imports from different versions would register test cases
+ * to registry from it's respective version of `testing` module.
+ */
+ __DENO_TEST_REGISTRY: TestDefinition[];
+ }
+}
+
+let candidates: TestDefinition[] = [];
+if (window["__DENO_TEST_REGISTRY"]) {
+ candidates = window.__DENO_TEST_REGISTRY as TestDefinition[];
+} else {
+ window["__DENO_TEST_REGISTRY"] = candidates;
+}
let filterRegExp: RegExp | null;
-const candidates: TestDefinition[] = [];
let filtered = 0;
// Must be called before any test() that needs to be filtered.