updeep-remeda/dist/is.test.js

47 lines
1.7 KiB
JavaScript

import { expect, test } from "vitest";
import is from "./is.js";
test("returns true if path matches a value predicate", () => {
const result = is({ a: { b: 4 } }, "a.b", 4);
expect(result).to.be.true;
});
test("returns true if path matches a function predicate", () => {
const isEven = (x) => x % 2 === 0;
const result = is("a.b", isEven)({ a: { b: 6 } });
expect(result).to.be.true;
});
test("returns false if path matches a value predicate", () => {
const result = is("a.b", 4)({ a: { b: 5 } });
expect(result).to.be.false;
});
test("returns false if path matches a function predicate", () => {
const isEven = (x) => x % 2 === 0;
const result = is("a.b", isEven)({ a: { b: 7 } });
expect(result).to.be.false;
});
test("returns false if the path does not exist", () => {
const result = is("a.b.c.d", 4)({ a: { b: {} } });
expect(result).to.be.false;
});
test("can test for undefined", () => {
const result = is("a.b.c", undefined)({ a: { b: {} } });
expect(result).to.be.true;
});
test("tests the actual object if a blank path is given", () => {
const result = is(4, "", 4);
expect(result).toBeTruthy();
});
test("can use arrays as paths", () => {
const result = is(["a", "b"], 4)({ a: { b: 4 } });
expect(result).to.be.true;
});
test("can include array indexes in paths", () => {
let result = is("a.1.b", 4)({ a: [{}, { b: 4 }] });
expect(result).to.be.true;
result = is(["a", 1, "b"], 4)({ a: [{}, { b: 4 }] });
expect(result).to.be.true;
});
test("can be partially applied", () => {
const result = is("a.b", 4)({ a: { b: 4 } });
expect(result).to.be.true;
});
//# sourceMappingURL=is.test.js.map