Skip to content

Commit

Permalink
Add tests
Browse files Browse the repository at this point in the history
  • Loading branch information
jablko committed Sep 22, 2019
1 parent 2714b38 commit 6dcb395
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 0 deletions.
6 changes: 6 additions & 0 deletions tests/baselines/reference/promiseType.js
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,11 @@ const pc6 = p.then(() => Promise.reject("1"), () => {});
const pc7 = p.then(() => Promise.reject("1"), () => {throw 1});
const pc8 = p.then(() => Promise.reject("1"), () => Promise.resolve(1));
const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1));

// GH#28427

declare const x2: Promise<number> | string;
Promise.all([x2]);


//// [promiseType.js]
Expand Down Expand Up @@ -440,3 +445,4 @@ const pc6 = p.then(() => Promise.reject("1"), () => { });
const pc7 = p.then(() => Promise.reject("1"), () => { throw 1; });
const pc8 = p.then(() => Promise.reject("1"), () => Promise.resolve(1));
const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1));
Promise.all([x2]);
12 changes: 12 additions & 0 deletions tests/baselines/reference/promiseType.symbols
Original file line number Diff line number Diff line change
Expand Up @@ -1089,3 +1089,15 @@ const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1));
>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --))
>reject : Symbol(PromiseConstructor.reject, Decl(lib.es2015.promise.d.ts, --, --))

// GH#28427

declare const x2: Promise<number> | string;
>x2 : Symbol(x2, Decl(promiseType.ts, 221, 13))
>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --))

Promise.all([x2]);
>Promise.all : Symbol(PromiseConstructor.all, Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --) ... and 6 more)
>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --))
>all : Symbol(PromiseConstructor.all, Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --) ... and 6 more)
>x2 : Symbol(x2, Decl(promiseType.ts, 221, 13))

13 changes: 13 additions & 0 deletions tests/baselines/reference/promiseType.types
Original file line number Diff line number Diff line change
Expand Up @@ -1583,3 +1583,16 @@ const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1));
>reject : <T = never>(reason?: any) => Promise<T>
>1 : 1

// GH#28427

declare const x2: Promise<number> | string;
>x2 : string | Promise<number>

Promise.all([x2]);
>Promise.all([x2]) : Promise<(string | number)[]>
>Promise.all : { <TAll>(values: Iterable<TAll>): Promise<(TAll extends PromiseLike<infer UAll> ? UAll : TAll)[]>; <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(values: readonly [T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]): Promise<[T1 extends PromiseLike<infer U1> ? U1 : T1, T2 extends PromiseLike<infer U2> ? U2 : T2, T3 extends PromiseLike<infer U3> ? U3 : T3, T4 extends PromiseLike<infer U4> ? U4 : T4, T5 extends PromiseLike<infer U5> ? U5 : T5, T6 extends PromiseLike<infer U6> ? U6 : T6, T7 extends PromiseLike<infer U7> ? U7 : T7, T8 extends PromiseLike<infer U8> ? U8 : T8, T9 extends PromiseLike<infer U9> ? U9 : T9, T10 extends PromiseLike<infer U10> ? U10 : T10]>; <T1, T2, T3, T4, T5, T6, T7, T8, T9>(values: readonly [T1, T2, T3, T4, T5, T6, T7, T8, T9]): Promise<[T1 extends PromiseLike<infer U1> ? U1 : T1, T2 extends PromiseLike<infer U2> ? U2 : T2, T3 extends PromiseLike<infer U3> ? U3 : T3, T4 extends PromiseLike<infer U4> ? U4 : T4, T5 extends PromiseLike<infer U5> ? U5 : T5, T6 extends PromiseLike<infer U6> ? U6 : T6, T7 extends PromiseLike<infer U7> ? U7 : T7, T8 extends PromiseLike<infer U8> ? U8 : T8, T9 extends PromiseLike<infer U9> ? U9 : T9]>; <T1, T2, T3, T4, T5, T6, T7, T8>(values: readonly [T1, T2, T3, T4, T5, T6, T7, T8]): Promise<[T1 extends PromiseLike<infer U1> ? U1 : T1, T2 extends PromiseLike<infer U2> ? U2 : T2, T3 extends PromiseLike<infer U3> ? U3 : T3, T4 extends PromiseLike<infer U4> ? U4 : T4, T5 extends PromiseLike<infer U5> ? U5 : T5, T6 extends PromiseLike<infer U6> ? U6 : T6, T7 extends PromiseLike<infer U7> ? U7 : T7, T8 extends PromiseLike<infer U8> ? U8 : T8]>; <T1, T2, T3, T4, T5, T6, T7>(values: readonly [T1, T2, T3, T4, T5, T6, T7]): Promise<[T1 extends PromiseLike<infer U1> ? U1 : T1, T2 extends PromiseLike<infer U2> ? U2 : T2, T3 extends PromiseLike<infer U3> ? U3 : T3, T4 extends PromiseLike<infer U4> ? U4 : T4, T5 extends PromiseLike<infer U5> ? U5 : T5, T6 extends PromiseLike<infer U6> ? U6 : T6, T7 extends PromiseLike<infer U7> ? U7 : T7]>; <T1, T2, T3, T4, T5, T6>(values: readonly [T1, T2, T3, T4, T5, T6]): Promise<[T1 extends PromiseLike<infer U1> ? U1 : T1, T2 extends PromiseLike<infer U2> ? U2 : T2, T3 extends PromiseLike<infer U3> ? U3 : T3, T4 extends PromiseLike<infer U4> ? U4 : T4, T5 extends PromiseLike<infer U5> ? U5 : T5, T6 extends PromiseLike<infer U6> ? U6 : T6]>; <T1, T2, T3, T4, T5>(values: readonly [T1, T2, T3, T4, T5]): Promise<[T1 extends PromiseLike<infer U1> ? U1 : T1, T2 extends PromiseLike<infer U2> ? U2 : T2, T3 extends PromiseLike<infer U3> ? U3 : T3, T4 extends PromiseLike<infer U4> ? U4 : T4, T5 extends PromiseLike<infer U5> ? U5 : T5]>; <T1, T2, T3, T4>(values: readonly [T1, T2, T3, T4]): Promise<[T1 extends PromiseLike<infer U1> ? U1 : T1, T2 extends PromiseLike<infer U2> ? U2 : T2, T3 extends PromiseLike<infer U3> ? U3 : T3, T4 extends PromiseLike<infer U4> ? U4 : T4]>; <T1, T2, T3>(values: readonly [T1, T2, T3]): Promise<[T1 extends PromiseLike<infer U1> ? U1 : T1, T2 extends PromiseLike<infer U2> ? U2 : T2, T3 extends PromiseLike<infer U3> ? U3 : T3]>; <T1, T2>(values: readonly [T1, T2]): Promise<[T1 extends PromiseLike<infer U1> ? U1 : T1, T2 extends PromiseLike<infer U2> ? U2 : T2]>; <T>(values: readonly T[]): Promise<(T extends PromiseLike<infer U> ? U : T)[]>; }
>Promise : PromiseConstructor
>all : { <TAll>(values: Iterable<TAll>): Promise<(TAll extends PromiseLike<infer UAll> ? UAll : TAll)[]>; <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(values: readonly [T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]): Promise<[T1 extends PromiseLike<infer U1> ? U1 : T1, T2 extends PromiseLike<infer U2> ? U2 : T2, T3 extends PromiseLike<infer U3> ? U3 : T3, T4 extends PromiseLike<infer U4> ? U4 : T4, T5 extends PromiseLike<infer U5> ? U5 : T5, T6 extends PromiseLike<infer U6> ? U6 : T6, T7 extends PromiseLike<infer U7> ? U7 : T7, T8 extends PromiseLike<infer U8> ? U8 : T8, T9 extends PromiseLike<infer U9> ? U9 : T9, T10 extends PromiseLike<infer U10> ? U10 : T10]>; <T1, T2, T3, T4, T5, T6, T7, T8, T9>(values: readonly [T1, T2, T3, T4, T5, T6, T7, T8, T9]): Promise<[T1 extends PromiseLike<infer U1> ? U1 : T1, T2 extends PromiseLike<infer U2> ? U2 : T2, T3 extends PromiseLike<infer U3> ? U3 : T3, T4 extends PromiseLike<infer U4> ? U4 : T4, T5 extends PromiseLike<infer U5> ? U5 : T5, T6 extends PromiseLike<infer U6> ? U6 : T6, T7 extends PromiseLike<infer U7> ? U7 : T7, T8 extends PromiseLike<infer U8> ? U8 : T8, T9 extends PromiseLike<infer U9> ? U9 : T9]>; <T1, T2, T3, T4, T5, T6, T7, T8>(values: readonly [T1, T2, T3, T4, T5, T6, T7, T8]): Promise<[T1 extends PromiseLike<infer U1> ? U1 : T1, T2 extends PromiseLike<infer U2> ? U2 : T2, T3 extends PromiseLike<infer U3> ? U3 : T3, T4 extends PromiseLike<infer U4> ? U4 : T4, T5 extends PromiseLike<infer U5> ? U5 : T5, T6 extends PromiseLike<infer U6> ? U6 : T6, T7 extends PromiseLike<infer U7> ? U7 : T7, T8 extends PromiseLike<infer U8> ? U8 : T8]>; <T1, T2, T3, T4, T5, T6, T7>(values: readonly [T1, T2, T3, T4, T5, T6, T7]): Promise<[T1 extends PromiseLike<infer U1> ? U1 : T1, T2 extends PromiseLike<infer U2> ? U2 : T2, T3 extends PromiseLike<infer U3> ? U3 : T3, T4 extends PromiseLike<infer U4> ? U4 : T4, T5 extends PromiseLike<infer U5> ? U5 : T5, T6 extends PromiseLike<infer U6> ? U6 : T6, T7 extends PromiseLike<infer U7> ? U7 : T7]>; <T1, T2, T3, T4, T5, T6>(values: readonly [T1, T2, T3, T4, T5, T6]): Promise<[T1 extends PromiseLike<infer U1> ? U1 : T1, T2 extends PromiseLike<infer U2> ? U2 : T2, T3 extends PromiseLike<infer U3> ? U3 : T3, T4 extends PromiseLike<infer U4> ? U4 : T4, T5 extends PromiseLike<infer U5> ? U5 : T5, T6 extends PromiseLike<infer U6> ? U6 : T6]>; <T1, T2, T3, T4, T5>(values: readonly [T1, T2, T3, T4, T5]): Promise<[T1 extends PromiseLike<infer U1> ? U1 : T1, T2 extends PromiseLike<infer U2> ? U2 : T2, T3 extends PromiseLike<infer U3> ? U3 : T3, T4 extends PromiseLike<infer U4> ? U4 : T4, T5 extends PromiseLike<infer U5> ? U5 : T5]>; <T1, T2, T3, T4>(values: readonly [T1, T2, T3, T4]): Promise<[T1 extends PromiseLike<infer U1> ? U1 : T1, T2 extends PromiseLike<infer U2> ? U2 : T2, T3 extends PromiseLike<infer U3> ? U3 : T3, T4 extends PromiseLike<infer U4> ? U4 : T4]>; <T1, T2, T3>(values: readonly [T1, T2, T3]): Promise<[T1 extends PromiseLike<infer U1> ? U1 : T1, T2 extends PromiseLike<infer U2> ? U2 : T2, T3 extends PromiseLike<infer U3> ? U3 : T3]>; <T1, T2>(values: readonly [T1, T2]): Promise<[T1 extends PromiseLike<infer U1> ? U1 : T1, T2 extends PromiseLike<infer U2> ? U2 : T2]>; <T>(values: readonly T[]): Promise<(T extends PromiseLike<infer U> ? U : T)[]>; }
>[x2] : (string | Promise<number>)[]
>x2 : string | Promise<number>

5 changes: 5 additions & 0 deletions tests/cases/compiler/promiseType.ts
Original file line number Diff line number Diff line change
Expand Up @@ -217,3 +217,8 @@ const pc6 = p.then(() => Promise.reject("1"), () => {});
const pc7 = p.then(() => Promise.reject("1"), () => {throw 1});
const pc8 = p.then(() => Promise.reject("1"), () => Promise.resolve(1));
const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1));

// GH#28427

declare const x2: Promise<number> | string;
Promise.all([x2]);

0 comments on commit 6dcb395

Please sign in to comment.