mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 06:12:43 +00:00 
			
		
		
		
	 7921d8ba91
			
		
	
	
		7921d8ba91
		
	
	
	
	
		
			
			This patch adds the Duration object itself, its constructor and prototype (currently empty), and three required abstract operations.
		
			
				
	
	
		
			35 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| describe("errors", () => {
 | |
|     test("called without new", () => {
 | |
|         expect(() => {
 | |
|             Temporal.Duration();
 | |
|         }).toThrowWithMessage(TypeError, "Temporal.Duration constructor must be called with 'new'");
 | |
|     });
 | |
| 
 | |
|     test("cannot mix arguments with different signs", () => {
 | |
|         expect(() => {
 | |
|             new Temporal.Duration(-1, 1);
 | |
|         }).toThrowWithMessage(RangeError, "Invalid duration");
 | |
|         expect(() => {
 | |
|             new Temporal.Duration(1, -1);
 | |
|         }).toThrowWithMessage(RangeError, "Invalid duration");
 | |
|     });
 | |
| 
 | |
|     test("cannot pass Infinity", () => {
 | |
|         expect(() => {
 | |
|             new Temporal.Duration(Infinity);
 | |
|         }).toThrowWithMessage(RangeError, "Invalid duration");
 | |
|     });
 | |
| });
 | |
| 
 | |
| describe("normal behavior", () => {
 | |
|     test("length is 0", () => {
 | |
|         expect(Temporal.Duration).toHaveLength(0);
 | |
|     });
 | |
| 
 | |
|     test("basic functionality", () => {
 | |
|         const duration = new Temporal.Duration();
 | |
|         expect(typeof duration).toBe("object");
 | |
|         expect(duration).toBeInstanceOf(Temporal.Duration);
 | |
|         expect(Object.getPrototypeOf(duration)).toBe(Temporal.Duration.prototype);
 | |
|     });
 | |
| });
 |