mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-27 14:02:07 +00:00 
			
		
		
		
	 ae4bf8fc32
			
		
	
	
		ae4bf8fc32
		
	
	
	
	
		
			
			This commit adds the PlainTime object itself, its constructor and prototype (currently empty), and the CreateTemporalTime abstract operation.
		
			
				
	
	
		
			50 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| describe("errors", () => {
 | |
|     test("called without new", () => {
 | |
|         expect(() => {
 | |
|             Temporal.PlainTime();
 | |
|         }).toThrowWithMessage(
 | |
|             TypeError,
 | |
|             "Temporal.PlainTime constructor must be called with 'new'"
 | |
|         );
 | |
|     });
 | |
| 
 | |
|     test("cannot pass Infinity", () => {
 | |
|         for (let i = 0; i < 6; ++i) {
 | |
|             const args = Array(6).fill(0);
 | |
| 
 | |
|             args[i] = Infinity;
 | |
|             expect(() => {
 | |
|                 new Temporal.PlainTime(...args);
 | |
|             }).toThrowWithMessage(RangeError, "Invalid plain time");
 | |
| 
 | |
|             args[i] = -Infinity;
 | |
|             expect(() => {
 | |
|                 new Temporal.PlainTime(...args);
 | |
|             }).toThrowWithMessage(RangeError, "Invalid plain time");
 | |
|         }
 | |
|     });
 | |
| 
 | |
|     test("cannot pass invalid ISO time", () => {
 | |
|         const badValues = [24, 60, 60, 1000, 1000, 1000];
 | |
|         for (let i = 0; i < 6; ++i) {
 | |
|             const args = [0, 0, 0, 0, 0, 0];
 | |
|             args[i] = badValues[i];
 | |
|             expect(() => {
 | |
|                 new Temporal.PlainTime(...args);
 | |
|             }).toThrowWithMessage(RangeError, "Invalid plain time");
 | |
|         }
 | |
|     });
 | |
| });
 | |
| 
 | |
| describe("normal behavior", () => {
 | |
|     test("length is 0", () => {
 | |
|         expect(Temporal.PlainTime).toHaveLength(0);
 | |
|     });
 | |
| 
 | |
|     test("basic functionality", () => {
 | |
|         const plainTime = new Temporal.PlainTime(19, 46, 32, 123, 456, 789);
 | |
|         expect(typeof plainTime).toBe("object");
 | |
|         expect(plainTime).toBeInstanceOf(Temporal.PlainTime);
 | |
|         expect(Object.getPrototypeOf(plainTime)).toBe(Temporal.PlainTime.prototype);
 | |
|     });
 | |
| });
 |