Some checks failed
CI/CD Pipeline / unit-tests (push) Failing after 1m16s
CI/CD Pipeline / integration-tests (push) Failing after 2m32s
CI/CD Pipeline / lint (push) Successful in 5m22s
CI/CD Pipeline / e2e-tests (push) Has been skipped
CI/CD Pipeline / build (push) Has been skipped
26 lines
762 B
TypeScript
26 lines
762 B
TypeScript
import { until } from './index.js'
|
|
|
|
it('infers the data type if no type arguments were provided', async () => {
|
|
const [error, data] = await until(() => Promise.resolve(123))
|
|
|
|
if (error) {
|
|
expectTypeOf(error).toEqualTypeOf<Error>()
|
|
expectTypeOf(data).toEqualTypeOf<null>()
|
|
} else {
|
|
expectTypeOf(error).toEqualTypeOf<null>()
|
|
expectTypeOf(data).toEqualTypeOf<number>()
|
|
}
|
|
})
|
|
|
|
it('treats error/data as a discriminated union type', async () => {
|
|
const [error, data] = await until<Error, number>(() => Promise.resolve(123))
|
|
|
|
if (error) {
|
|
expectTypeOf(error).toEqualTypeOf<Error>()
|
|
expectTypeOf(data).toEqualTypeOf<null>()
|
|
} else {
|
|
expectTypeOf(error).toEqualTypeOf<null>()
|
|
expectTypeOf(data).toEqualTypeOf<number>()
|
|
}
|
|
})
|