-
Notifications
You must be signed in to change notification settings - Fork 352
Expand file tree
/
Copy pathtimezone-adjustments.js
More file actions
97 lines (77 loc) · 2.32 KB
/
timezone-adjustments.js
File metadata and controls
97 lines (77 loc) · 2.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
var test = require("tape");
var testInput = require("./util/test-input");
require("sugar-date");
var parseDelimitedInput = require("../src/js/util/parse-delimited-input.js");
var parseUtils = require("../src/js/util/parse-utils.js");
var cast = parseDelimitedInput._cast_data;
var separators = {
decimal: ".",
thousands: ","
};
var stripChars = [
"$",
"£",
"€",
"%"
];
var _stripCharsStr = stripChars.concat([separators.thousands]).reduce(function(a, b) {
return a.concat(parseUtils.escapeRegExp(b));
}, []).join("|");
var stripCharsRegex = new RegExp(_stripCharsStr, "g");
test("timezone: tz adjustments", function(t) {
t.plan(3);
var input = [
"date-col val",
"2016-02-02T12:00:00-0800 1",
"2016-02-02T12:00:01-0800 1",
"2016-02-02T12:00:02-0800 1",
"2016-02-02T12:00:03-0800 1"
].join("\n");
var opts = {
type: "date",
inputTZ: "Z",
delimiter: parseUtils.detectDelimiter(input)
};
var entries = cast(input, ["date-col", "val"], stripCharsRegex, opts).entries;
var expected = [
Date.create("2016-02-02T12:00:00-0800"),
Date.create("2016-02-02T12:00:01-0800"),
Date.create("2016-02-02T12:00:02-0800"),
Date.create("2016-02-02T12:00:03-0800")
];
t.deepEqual(entries, expected, "dates that already have a timezone are left alone");
input = [
"date-col val",
"Feb. 2 2016 12:00:00 1",
"Feb. 2 2016 12:00:01 1",
"Feb. 2 2016 12:00:02 1",
"Feb. 2 2016 12:00:03 1"
].join("\n");
opts = {
type: "date",
inputTZ: null,
delimiter: parseUtils.detectDelimiter(input)
};
expected = [
Date.create("2016-02-02T12:00:00"),
Date.create("2016-02-02T12:00:01"),
Date.create("2016-02-02T12:00:02"),
Date.create("2016-02-02T12:00:03")
];
entries = cast(input, ["date-col", "val"], stripCharsRegex, opts).entries;
t.deepEqual(entries, expected,"dates that don't have a timezone are adjusted to local when there is no inputTZ");
opts = {
type: "date",
inputTZ: "-0500",
delimiter: parseUtils.detectDelimiter(input)
};
expected = [
Date.create("2016-02-02T12:00:00-0500"),
Date.create("2016-02-02T12:00:01-0500"),
Date.create("2016-02-02T12:00:02-0500"),
Date.create("2016-02-02T12:00:03-0500")
];
entries = cast(input, ["date-col", "val"], stripCharsRegex, opts).entries;
t.deepEqual(entries, expected,"dates that don't have a timezone are adjusted to the inputTZ");
t.end();
});