predictype
Version:
PredicType is a library of pre-built and tested predicates for TypeScript, covering various data types and operations.
43 lines (42 loc) • 2.36 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const vitest_1 = require("vitest");
const objectKeys_js_1 = require("./objectKeys.js");
(0, vitest_1.describe)('objectKeys', () => {
(0, vitest_1.it)('should return true for contains_all_keys', () => {
const obj = { foo: 1, bar: 2 };
(0, vitest_1.expect)((0, objectKeys_js_1.objectKeysCompare)(obj, 'contains_all_keys', ['foo', 'bar'])).toBe(true);
});
(0, vitest_1.it)('should return true for contains_any_key', () => {
const obj = { foo: 1, bar: 2 };
(0, vitest_1.expect)((0, objectKeys_js_1.objectKeysCompare)(obj, 'contains_any_key', ['foo', 'baz'])).toBe(true);
});
(0, vitest_1.it)('should return true for equals_keys', () => {
const obj = { foo: 1, bar: 2 };
(0, vitest_1.expect)((0, objectKeys_js_1.objectKeysCompare)(obj, 'equals_keys', ['foo', 'bar'])).toBe(true);
});
(0, vitest_1.it)('should return true for lacks_all_keys on empty object', () => {
const obj = {};
(0, vitest_1.expect)((0, objectKeys_js_1.objectKeysCompare)(obj, 'lacks_all_keys', ['foo'])).toBe(true);
});
(0, vitest_1.it)('should return true for contains_only_keys', () => {
const obj = { foo: 1, bar: 2 };
(0, vitest_1.expect)((0, objectKeys_js_1.objectKeysCompare)(obj, 'contains_only_keys', ['foo', 'bar'])).toBe(true);
});
(0, vitest_1.it)('should return true for contains_symbol_keys', () => {
const sym = Symbol('baz');
const obj = { [sym]: 3 };
(0, vitest_1.expect)((0, objectKeys_js_1.objectKeysCompare)(obj, 'contains_symbol_keys', [sym])).toBe(true);
});
// No direct equivalent for has_any_property in ObjectKeysEnum, skipping.
// No direct equivalent for matches_keys in ObjectKeysEnum, skipping.
(0, vitest_1.it)('should return true for only_keys', () => {
const obj = { foo: 1, bar: 2 };
(0, vitest_1.expect)((0, objectKeys_js_1.objectKeysCompare)(obj, 'only_keys', ['foo', 'bar'])).toBe(true);
});
(0, vitest_1.it)('should throw for unknown operator', () => {
const obj = { foo: 1 };
// @ts-expect-error
(0, vitest_1.expect)(() => (0, objectKeys_js_1.objectKeysCompare)(obj, 'invalid_operator', ['foo'])).toThrow('Unknown ObjectKeys operation: invalid_operator');
});
});
;