predictype
Version:
PredicType is a library of pre-built and tested predicates for TypeScript, covering various data types and operations.
34 lines (33 loc) • 2.19 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const vitest_1 = require("vitest");
const objectProperty_js_1 = require("./objectProperty.js");
(0, vitest_1.describe)('objectProperty', () => {
(0, vitest_1.it)('should return true for contains_property (inherited or own)', () => {
const obj = { foo: 1 };
(0, vitest_1.expect)((0, objectProperty_js_1.objectProperty)(obj, 'contains_property', 'foo')).toBe(true);
(0, vitest_1.expect)((0, objectProperty_js_1.objectProperty)(obj, 'contains_property', 'toString')).toBe(true); // inherited
(0, vitest_1.expect)((0, objectProperty_js_1.objectProperty)(obj, 'contains_property', 'bar')).toBe(false);
});
(0, vitest_1.it)('should return true for lacks_property', () => {
const obj = { foo: 1 };
(0, vitest_1.expect)((0, objectProperty_js_1.objectProperty)(obj, 'lacks_property', 'bar')).toBe(true);
(0, vitest_1.expect)((0, objectProperty_js_1.objectProperty)(obj, 'lacks_property', 'foo')).toBe(false);
});
(0, vitest_1.it)('should return true for contains_own_property', () => {
const obj = { foo: 1 };
(0, vitest_1.expect)((0, objectProperty_js_1.objectProperty)(obj, 'contains_own_property', 'foo')).toBe(true);
(0, vitest_1.expect)((0, objectProperty_js_1.objectProperty)(obj, 'contains_own_property', 'toString')).toBe(false);
});
(0, vitest_1.it)('should return true for lacks_own_property', () => {
const obj = { foo: 1 };
(0, vitest_1.expect)((0, objectProperty_js_1.objectProperty)(obj, 'lacks_own_property', 'bar')).toBe(true);
(0, vitest_1.expect)((0, objectProperty_js_1.objectProperty)(obj, 'lacks_own_property', 'toString')).toBe(true);
(0, vitest_1.expect)((0, objectProperty_js_1.objectProperty)(obj, 'lacks_own_property', 'foo')).toBe(false);
});
(0, vitest_1.it)('should throw for unknown operator', () => {
const obj = { foo: 1 };
// @ts-expect-error
(0, vitest_1.expect)(() => (0, objectProperty_js_1.objectProperty)(obj, 'invalid_operator', 'foo')).toThrow('Unknown ObjectProperty operation: invalid_operator');
});
});
;