summaryrefslogtreecommitdiff
path: root/std/util/deep_assign_test.ts
blob: f1a56e1ad34f779619fdccd33852adcac2bb1543 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
const { test } = Deno;
import { assertEquals, assert } from "../testing/asserts.ts";
import { deepAssign } from "./deep_assign.ts";

test("deepAssignTest", function (): void {
  const date = new Date("1979-05-27T07:32:00Z");
  const reg = RegExp(/DENOWOWO/);
  const obj1 = { deno: { bar: { deno: ["is", "not", "node"] } } };
  const obj2 = { foo: { deno: date } };
  const obj3 = { foo: { bar: "deno" }, reg: reg };
  const actual = deepAssign(obj1, obj2, obj3);
  const expected = {
    foo: {
      deno: new Date("1979-05-27T07:32:00Z"),
      bar: "deno",
    },
    deno: { bar: { deno: ["is", "not", "node"] } },
    reg: RegExp(/DENOWOWO/),
  };
  assert(date !== expected.foo.deno);
  assert(reg !== expected.reg);
  assertEquals(actual, expected);
});