forked from NovemLinguae/UserScripts
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNotSoFast.test.js
More file actions
23 lines (21 loc) · 1.18 KB
/
Copy pathNotSoFast.test.js
File metadata and controls
23 lines (21 loc) · 1.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function convertTimeZoneFromMediaWikiToBrowser(timestamp, medaWikiTimeZoneString, browserTimeZoneOffset) {
let mediaWikiTimeZoneOffsetInMinutes = getMediaWikiTimeZoneOffset(medaWikiTimeZoneString);
let mediaWikiTimeZoneOffsetInSeconds = mediaWikiTimeZoneOffsetInMinutes * 60;
let browserTimeZoneOffsetInSeconds = browserTimeZoneOffset * 60;
let conversion = parseInt(mediaWikiTimeZoneOffsetInSeconds) - parseInt(browserTimeZoneOffsetInSeconds);
return parseInt(timestamp) + conversion;
}
/**
* Converts a MediaWiki mw.user.options.get('timecorrection') from something like 'ZoneInfo|-420|America/Los_Angeles' or 'System|0' to -420 or 0.
*/
function getMediaWikiTimeZoneOffset(string) {
return parseInt(string.match(/\d+/)[0]);
}
describe('convertTimeZoneFromMediaWikiToBrowser(timestamp, medaWikiTimeZoneString, browserTimeZoneOffset)', () => {
test(`should handle mediawiki UTC and browser pacific standard time`, () => {
let timestamp = 1656495780; // UTC
let medaWikiTimeZoneString = `System|0`; // UTC
let browserTimeZoneOffset = 420; // USA pacific time
expect(convertTimeZoneFromMediaWikiToBrowser(timestamp, medaWikiTimeZoneString, browserTimeZoneOffset)).toBe(1656470580);
});
});