"use strict";
/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
Object.defineProperty(exports, "__esModule", { value: true });
const assert_1 = require("assert");
const properties_1 = require("../properties.cjs");
describe("Properties", () => {
    describe("matchProperties", () => {
        it("simple properties match", () => {
            (0, assert_1.strict)((0, properties_1.matchProperties)({ a: "a" }, { a: "a" }));
        });
        it("simple properties don't match", () => {
            (0, assert_1.strict)(!(0, properties_1.matchProperties)({ a: "a" }, { a: "b" }));
        });
        it("multiple simple properties match", () => {
            (0, assert_1.strict)((0, properties_1.matchProperties)({ a: "a", 1: 1 }, { a: "a", 1: 1 }));
        });
        it("multiple simple properties don't match", () => {
            (0, assert_1.strict)(!(0, properties_1.matchProperties)({ a: "a", 1: 1 }, { a: "b", 1: 2 }));
        });
        it("keys don't match", () => {
            (0, assert_1.strict)(!(0, properties_1.matchProperties)({ a: "a" }, { b: "a" }));
        });
        it("extra key", () => {
            (0, assert_1.strict)(!(0, properties_1.matchProperties)({ a: "a" }, { a: "a", b: "b" }));
        });
        it("complex properties match", () => {
            (0, assert_1.strict)((0, properties_1.matchProperties)({ c: { a: "a" } }, { c: { a: "a" } }));
        });
        it("complex properties don't match", () => {
            (0, assert_1.strict)(!(0, properties_1.matchProperties)({ c: { a: "a" } }, { c: { a: "b" } }));
        });
        it("undefined and simple properties don't match", () => {
            (0, assert_1.strict)(!(0, properties_1.matchProperties)(undefined, { a: "a" }));
        });
        it("empty and simple properties don't match", () => {
            (0, assert_1.strict)(!(0, properties_1.matchProperties)({}, { a: "a" }));
        });
        it("undefined properties match", () => {
            (0, assert_1.strict)((0, properties_1.matchProperties)(undefined, undefined));
        });
        it("empty properties match", () => {
            (0, assert_1.strict)((0, properties_1.matchProperties)({}, {}));
        });
        it("undefined and empty properties match", () => {
            (0, assert_1.strict)((0, properties_1.matchProperties)(undefined, {}));
        });
        it("empty and undefined properties match", () => {
            (0, assert_1.strict)((0, properties_1.matchProperties)({}, undefined));
        });
    });
});
//# sourceMappingURL=properties.spec.cjs.map