12345678910111213141516171819202122232425262728293031323334353637 |
- test("length is 1", () => {
- expect(Promise).toHaveLength(1);
- });
- describe("errors", () => {
- test("must be called as constructor", () => {
- expect(() => {
- Promise();
- }).toThrowWithMessage(TypeError, "Promise constructor must be called with 'new'");
- });
- test("executor must be a function", () => {
- expect(() => {
- new Promise();
- }).toThrowWithMessage(TypeError, "Promise executor must be a function");
- });
- });
- describe("normal behavior", () => {
- test("returns a Promise object", () => {
- const promise = new Promise(() => {});
- expect(promise).toBeInstanceOf(Promise);
- expect(typeof promise).toBe("object");
- });
- test("executor is called with resolve and reject functions", () => {
- let resolveFunction = null;
- let rejectFunction = null;
- new Promise((resolve, reject) => {
- resolveFunction = resolve;
- rejectFunction = reject;
- });
- expect(typeof resolveFunction).toBe("function");
- expect(typeof rejectFunction).toBe("function");
- expect(resolveFunction).not.toBe(rejectFunction);
- });
- });
|