|
| 1 | +import {expectType, expectError} from 'tsd'; |
| 2 | + |
| 3 | +import * as fl from '../../index.js'; |
| 4 | + |
| 5 | +const fsn: fl.Uncertain<string, number> = fl.resolve (42); |
| 6 | +const fns: fl.Uncertain<number, string> = fl.resolve ('a'); |
| 7 | + |
| 8 | +// Standard usage on Future instances. |
| 9 | +// expectType<fl.Never> (fl.and (fl.never) (fl.never)); |
| 10 | +// expectType<fl.Never> (fl.and (fl.never) (fl.resolve ('a'))); |
| 11 | +// expectType<fl.Never> (fl.and (fl.reject ('a')) (fl.never)); |
| 12 | +// expectType<fl.Never> (fl.and (fl.resolve ('a')) (fl.never)); |
| 13 | +// expectType<fl.Rejected<string>> (fl.and (fl.reject ('a')) (fl.resolve (42))); |
| 14 | +// expectType<fl.Resolved<number>> (fl.and (fl.resolve (42)) (fl.resolve (42))); |
| 15 | +// expectType<fl.Rejected<number>> (fl.and (fl.reject (42)) (fl.reject (42))); |
| 16 | +// expectType<fl.Uncertain<string, number>> (fl.and (fsn) (fsn)); |
| 17 | +// expectType<fl.Rejected<string>> (fl.and (fl.never) (fl.reject ('a'))); |
| 18 | +// expectType<fl.Rejected<string>> (fl.and (fl.resolve (42)) (fl.reject ('a'))); |
| 19 | +// expectType<fl.Rejected<number>> (fl.and (fl.reject ('a')) (fl.reject (42))); |
| 20 | +// expectError (fl.and (fsn) (fns)); |
| 21 | + |
| 22 | +const x = fl.resolve ('').pipe(fl.and (fl.never)) |
| 23 | +type T = typeof x |
| 24 | + |
| 25 | +// Usage with pipe on Future instances (https://git.io/JLx3F). |
| 26 | +expectType<fl.Never> ((fl.never) .pipe (fl.and (fl.never))); |
| 27 | +expectType<fl.Never> ((fl.resolve ('a')) .pipe (fl.and (fl.never))); |
| 28 | +expectType<fl.Never> ((fl.never) .pipe (fl.and (fl.reject ('a')))); |
| 29 | +expectType<fl.Never> ((fl.never) .pipe (fl.and (fl.resolve ('a')))); |
| 30 | +expectType<fl.Rejected<string>> ((fl.resolve (42)) .pipe (fl.and (fl.reject ('a')))); |
| 31 | +expectType<fl.Resolved<number>> ((fl.resolve (42)) .pipe (fl.and (fl.resolve (42)))); |
| 32 | +expectType<fl.Rejected<number>> ((fl.reject (42)) .pipe (fl.and (fl.reject (42)))); |
| 33 | +expectType<fl.Uncertain<string, number>> ((fsn) .pipe (fl.and (fsn))); |
| 34 | +expectType<fl.Rejected<string>> ((fl.reject ('a')) .pipe (fl.and (fl.never))); |
| 35 | +expectType<fl.Rejected<string>> ((fl.reject ('a')) .pipe (fl.and (fl.resolve (42)))); |
| 36 | +expectType<fl.Rejected<number>> ((fl.reject (42)) .pipe (fl.and (fl.reject ('a')))); |
| 37 | +expectError ((fns) .pipe (fl.and (fsn))); |
0 commit comments