diff options
| -rw-r--r-- | testing/asserts.ts | 11 | ||||
| -rw-r--r-- | testing/asserts_test.ts | 6 |
2 files changed, 17 insertions, 0 deletions
diff --git a/testing/asserts.ts b/testing/asserts.ts index eb5e11969..83fa7c8e5 100644 --- a/testing/asserts.ts +++ b/testing/asserts.ts @@ -16,6 +16,17 @@ export class AssertionError extends Error { export function equal(c: unknown, d: unknown): boolean { const seen = new Map(); return (function compare(a: unknown, b: unknown) { + if (a && a instanceof Set && b && b instanceof Set) { + if (a.size !== b.size) { + return false; + } + for (const item of b) { + if (!a.has(item)) { + return false; + } + } + return true; + } // Have to render RegExp & Date for string comparison // unless it's mistreated as object if ( diff --git a/testing/asserts_test.ts b/testing/asserts_test.ts index 87e0335ac..ed58d74df 100644 --- a/testing/asserts_test.ts +++ b/testing/asserts_test.ts @@ -40,6 +40,12 @@ test(function testingEqual() { assert(!equal(/deno/, /node/)); assert(equal(new Date(2019, 0, 3), new Date(2019, 0, 3))); assert(!equal(new Date(2019, 0, 3), new Date(2019, 1, 3))); + assert(equal(new Set([1]), new Set([1]))); + assert(!equal(new Set([1]), new Set([2]))); + assert(equal(new Set([1, 2, 3]), new Set([3, 2, 1]))); + assert(!equal(new Set([1, 2]), new Set([3, 2, 1]))); + assert(!equal(new Set([1, 2, 3]), new Set([4, 5, 6]))); + assert(equal(new Set("denosaurus"), new Set("denosaurussss"))); }); test(function testingNotEquals() { |
