Initial commit
This commit is contained in:
30
scripts/check-format-display-datetime.js
Normal file
30
scripts/check-format-display-datetime.js
Normal file
@@ -0,0 +1,30 @@
|
||||
/**
|
||||
* ponytail: assert Tehran display formatting (fixed +03:30).
|
||||
* Run: node scripts/check-format-display-datetime.js
|
||||
*
|
||||
* Standalone copy of offset math — CRA ESM can't require() the helper.
|
||||
* Keep in sync with src/core/helper/formatDisplayDateTime.js
|
||||
*/
|
||||
const assert = require("assert");
|
||||
|
||||
const TEHRAN_UTC_OFFSET_MINUTES = 210;
|
||||
|
||||
function formatTehranFromUnixSec(unixSec, pattern) {
|
||||
// 2024-01-15T12:00:00Z → Tehran 15:30
|
||||
const ms = unixSec * 1000 + TEHRAN_UTC_OFFSET_MINUTES * 60 * 1000;
|
||||
const d = new Date(ms);
|
||||
const hh = String(d.getUTCHours()).padStart(2, "0");
|
||||
const mm = String(d.getUTCMinutes()).padStart(2, "0");
|
||||
const ss = String(d.getUTCSeconds()).padStart(2, "0");
|
||||
if (pattern === "time") return `${Number(hh)}:${mm}:${ss}`.replace(/^0/, "") || `${hh}:${mm}:${ss}`;
|
||||
// Just assert hour/minute components for smoke
|
||||
return { hour: d.getUTCHours(), minute: d.getUTCMinutes() };
|
||||
}
|
||||
|
||||
// 1705320000 = 2024-01-15T12:00:00.000Z → Tehran 15:30
|
||||
const parts = formatTehranFromUnixSec(1705320000, "full");
|
||||
assert.strictEqual(parts.hour, 15, "Tehran hour for 12:00Z");
|
||||
assert.strictEqual(parts.minute, 30, "Tehran minute for 12:00Z");
|
||||
assert.strictEqual(TEHRAN_UTC_OFFSET_MINUTES, 210);
|
||||
|
||||
console.log("check-format-display-datetime: ok");
|
||||
Reference in New Issue
Block a user