blob: 6ec611f3aea01037bcb516dacbecc4d924da25ae [file] [log] [blame]
function returnsPromise() {
return Promise.resolve(true);
}
type Future = Promise<number>;
function aliasedPromise(): Future {
return Promise.resolve(1);
}
class Extended extends Promise<number> {}
function extendedPromise(): Extended {
return Promise.resolve(1);
}
class DoubleExtended extends Extended {}
function doubleExtendedPromise(): Extended {
return Promise.resolve(1);
}
function maybePromise(): Promise<number>|number {
return 3;
}
describe('example test', () => {
it('should error when expecting promises toBeTruthy', async () => {
const promise = returnsPromise();
// Every expect here should fail the check.
expect(promise).toBeTruthy();
expect(maybePromise()).not.toBeTruthy();
expect(maybePromise()).toBeTruthy();
expect(returnsPromise()).toBeTruthy();
expect(aliasedPromise()).toBeTruthy();
expect(extendedPromise()).toBeTruthy();
expect(doubleExtendedPromise()).toBeTruthy();
});
it('should allow awaited promises', async () => {
const promise = returnsPromise();
expect(await promise).toBeTruthy();
expect(await maybePromise()).toBeTruthy();
expect(await returnsPromise()).toBeTruthy();
expect(await aliasedPromise()).toBeTruthy();
expect(await extendedPromise()).toBeTruthy();
});
it('should only error for promises', async () => {
expect('truthy').toBeTruthy();
expect(1).toBeTruthy();
expect(true).toBeTruthy();
expect(null).not.toBeTruthy();
});
});