summaryrefslogtreecommitdiff
path: root/deno_testing
diff options
context:
space:
mode:
Diffstat (limited to 'deno_testing')
-rw-r--r--deno_testing/testing.ts96
-rw-r--r--deno_testing/util.ts60
-rw-r--r--deno_testing/util_test.ts32
3 files changed, 0 insertions, 188 deletions
diff --git a/deno_testing/testing.ts b/deno_testing/testing.ts
deleted file mode 100644
index 969c15704..000000000
--- a/deno_testing/testing.ts
+++ /dev/null
@@ -1,96 +0,0 @@
-/*!
- Copyright 2018 Propel http://propel.site/. All rights reserved.
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-export { assert, assertEqual, equal } from "./util";
-
-export type TestFunction = () => void | Promise<void>;
-
-export interface TestDefinition {
- fn: TestFunction;
- name: string;
-}
-
-export const exitOnFail = true;
-
-/* A subset of the tests can be ran by providing a filter expression.
- * In Node.js the filter is specified on the command line:
- *
- * ts-node test_node log # all tests with 'log' in the name
- * ts-node test_node ^util # tests starting with 'util'
- *
- * In the browser, the filter is specified as part of the url:
- *
- * http://localhost:9876/test.html#script=some/script.js&filter=log
- * http://localhost:9876/test.html#script=some/script.js&filter=^util
- */
-let filterExpr: string = null;
-
-const filterRegExp = filterExpr ? new RegExp(filterExpr, "i") : null;
-const tests: TestDefinition[] = [];
-
-export function test(t: TestDefinition | TestFunction): void {
- const fn: TestFunction = typeof t === "function" ? t : t.fn;
- const name: string = t.name;
-
- if (!name) {
- throw new Error("Test function may not be anonymous");
- }
- if (filter(name)) {
- tests.push({ fn, name });
- }
-}
-
-function filter(name: string): boolean {
- if (filterRegExp) {
- return filterRegExp.test(name);
- } else {
- return true;
- }
-}
-
-async function runTests() {
- let passed = 0;
- let failed = 0;
-
- for (let i = 0; i < tests.length; i++) {
- const { fn, name } = tests[i];
- console.log(`${i+1}/${tests.length} +${passed} -${failed}: ${name}`);
- try {
- await fn();
- passed++;
- } catch (e) {
- console.error("\nTest FAIL", name);
- console.error((e && e.stack) || e);
- failed++;
- if (exitOnFail) {
- break;
- }
- }
- }
-
- console.log(`\nDONE. Test passed: ${passed}, failed: ${failed}`);
-
- if (failed === 0) {
- // All good.
- } else {
- // Use setTimeout to avoid the error being ignored due to unhandled
- // promise rejections being swallowed.
- setTimeout(() => {
- throw new Error(`There were ${failed} test failures.`);
- }, 0);
- }
-}
-
-setTimeout(runTests, 0);
diff --git a/deno_testing/util.ts b/deno_testing/util.ts
deleted file mode 100644
index 509713005..000000000
--- a/deno_testing/util.ts
+++ /dev/null
@@ -1,60 +0,0 @@
-/*!
- Copyright 2018 Propel http://propel.site/. All rights reserved.
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- */
-
-// tslint:disable-next-line:no-any
-export function assertEqual(actual: any, expected: any, msg?: string) {
- if (!msg) { msg = `actual: ${actual} expected: ${expected}`; }
- if (!equal(actual, expected)) {
- console.error(
- "assertEqual failed. actual = ", actual, "expected =", expected);
- throw new Error(msg);
- }
-}
-
-export function assert(expr: boolean, msg = "") {
- if (!expr) {
- throw new Error(msg);
- }
-}
-
-// tslint:disable-next-line:no-any
-export function equal(c: any, d: any): boolean {
- const seen = new Map();
- return (function compare(a, b) {
- if (a === b) {
- return true;
- }
- if (typeof a === "number" && typeof b === "number" &&
- isNaN(a) && isNaN(b)) {
- return true;
- }
- if (a && typeof a === "object" && b && typeof b === "object") {
- if (seen.get(a) === b) {
- return true;
- }
- if (Object.keys(a).length !== Object.keys(b).length) {
- return false;
- }
- for (const key in { ...a, ...b }) {
- if (!compare(a[key], b[key])) {
- return false;
- }
- }
- seen.set(a, b);
- return true;
- }
- return false;
- })(c, d);
-}
diff --git a/deno_testing/util_test.ts b/deno_testing/util_test.ts
deleted file mode 100644
index 44f61f9c4..000000000
--- a/deno_testing/util_test.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-/*!
- Copyright 2018 Propel http://propel.site/. All rights reserved.
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- */
-
-import { test } from "./index";
-import { assert } from "./util";
-import * as util from "./util";
-
-test(async function util_equal() {
- assert(util.equal("world", "world"));
- assert(!util.equal("hello", "world"));
- assert(util.equal(5, 5));
- assert(!util.equal(5, 6));
- assert(util.equal(NaN, NaN));
- assert(util.equal({ hello: "world" }, { hello: "world" }));
- assert(!util.equal({ world: "hello" }, { hello: "world" }));
- assert(util.equal({ hello: "world", hi: { there: "everyone" } },
- { hello: "world", hi: { there: "everyone" } }));
- assert(!util.equal({ hello: "world", hi: { there: "everyone" } },
- { hello: "world", hi: { there: "everyone else" } }));
-});