mirror of
				https://github.com/LadybirdBrowser/ladybird.git
				synced 2025-11-04 07:10:57 +00:00 
			
		
		
		
	
		
			
	
	
		
			38 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			38 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								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);
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								});
							 |