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.22 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const vitest_1 = require("vitest");
const promiseState_js_1 = require("./promiseState.js");
(0, vitest_1.describe)('promiseState', () => {
(0, vitest_1.it)('should return true for is_pending immediately after wrapping', () => {
const p = Promise.resolve(42);
const wrapped = (0, promiseState_js_1.wrapPromise)(p);
(0, vitest_1.expect)((0, promiseState_js_1.promiseState)(wrapped, 'is_pending')).toBe(true);
});
(0, vitest_1.it)('should return true for is_fulfilled after resolution', async () => {
const p = Promise.resolve(42);
const wrapped = (0, promiseState_js_1.wrapPromise)(p);
await wrapped.promise;
(0, vitest_1.expect)((0, promiseState_js_1.promiseState)(wrapped, 'is_fulfilled')).toBe(true);
});
(0, vitest_1.it)('should return true for is_rejected after rejection', async () => {
const p = Promise.reject(new Error('fail'));
const wrapped = (0, promiseState_js_1.wrapPromise)(p);
try {
await wrapped.promise;
}
catch { }
(0, vitest_1.expect)((0, promiseState_js_1.promiseState)(wrapped, 'is_rejected')).toBe(true);
});
(0, vitest_1.it)('should return false for is_fulfilled immediately after wrapping', () => {
const p = Promise.resolve(42);
const wrapped = (0, promiseState_js_1.wrapPromise)(p);
(0, vitest_1.expect)((0, promiseState_js_1.promiseState)(wrapped, 'is_fulfilled')).toBe(false);
});
(0, vitest_1.it)('should return false for is_rejected immediately after wrapping', () => {
const p = Promise.resolve(42);
const wrapped = (0, promiseState_js_1.wrapPromise)(p);
(0, vitest_1.expect)((0, promiseState_js_1.promiseState)(wrapped, 'is_rejected')).toBe(false);
});
(0, vitest_1.it)('should throw for unknown operation', () => {
const p = Promise.resolve(42);
const wrapped = (0, promiseState_js_1.wrapPromise)(p);
// @ts-expect-error
(0, vitest_1.expect)(() => (0, promiseState_js_1.promiseState)(wrapped, 'unknown')).toThrow('Unknown PromiseState operation: unknown');
});
});
;