mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 07:52:45 +00:00 
			
		
		
		
	 95331ea864
			
		
	
	
		95331ea864
		
	
	
	
	
		
			
			Combining month and day like this doesn't always yield correct results. Use dayOfYear multiplied by the seconds per day instead, which does.
		
			
				
	
	
		
			37 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| describe("correct behavior", () => {
 | |
|     test("length is 0", () => {
 | |
|         expect(Temporal.Now.plainDateTimeISO).toHaveLength(0);
 | |
|     });
 | |
| 
 | |
|     test("basic functionality", () => {
 | |
|         const plainDateTime = Temporal.Now.plainDateTimeISO();
 | |
|         expect(plainDateTime).toBeInstanceOf(Temporal.PlainDateTime);
 | |
|         expect(plainDateTime.calendar.id).toBe("iso8601");
 | |
|     });
 | |
| 
 | |
|     test("custom time zone", () => {
 | |
|         const timeZone = {
 | |
|             getOffsetNanosecondsFor() {
 | |
|                 return 86400000000000;
 | |
|             },
 | |
|         };
 | |
| 
 | |
|         const plainDateTimeToEpochSeconds = plainDateTime =>
 | |
|             (plainDateTime.year - 1970) * 31_556_952 +
 | |
|             plainDateTime.dayOfYear * 86_400 +
 | |
|             plainDateTime.hour * 3_600 +
 | |
|             plainDateTime.minute * 60 +
 | |
|             plainDateTime.second +
 | |
|             plainDateTime.millisecond / 1_000 +
 | |
|             plainDateTime.microsecond / 1_000_000 +
 | |
|             plainDateTime.nanosecond / 1_000_000_000;
 | |
| 
 | |
|         const plainDateTime = Temporal.Now.plainDateTimeISO();
 | |
|         const plainDateTimeWithOffset = Temporal.Now.plainDateTimeISO(timeZone);
 | |
|         // Let's hope the duration between the above two lines is less than a second :^)
 | |
|         const differenceSeconds =
 | |
|             plainDateTimeToEpochSeconds(plainDateTimeWithOffset) -
 | |
|             plainDateTimeToEpochSeconds(plainDateTime);
 | |
|         expect(Math.floor(differenceSeconds)).toBe(86400);
 | |
|     });
 | |
| });
 |