Skip to content

Commit a234d0d

Browse files
committed
test: refactor querySelector
1 parent 72a02ce commit a234d0d

File tree

1 file changed

+29
-55
lines changed

1 file changed

+29
-55
lines changed

tests/SvelteTime.test.ts

Lines changed: 29 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -19,64 +19,56 @@ describe("svelte-time", () => {
1919
document.body.innerHTML = "";
2020
});
2121

22+
const getElement = (selector: string) => {
23+
return document.querySelector(selector) as HTMLElement;
24+
};
25+
2226
const DEFAULT_TIME = dayjs(new Date().toISOString()).format("MMM DD, YYYY");
2327

2428
test("SvelteTime.test.svelte", async () => {
2529
const target = document.body;
2630

27-
instance = new SvelteTime({
28-
target,
29-
});
31+
instance = new SvelteTime({ target });
3032

3133
const date = new Date();
3234
const timestamp = date.toISOString();
3335

34-
const defaultComponent = target.querySelector('[data-test="default"]')!;
36+
const defaultComponent = getElement('[data-test="default"]')!;
3537
expect(defaultComponent.innerHTML).toEqual(DEFAULT_TIME);
3638
expect(defaultComponent.innerHTML).toEqual(dayjs().format("MMM DD, YYYY"));
3739

38-
const timestampString = target.querySelector(
39-
'[data-test="timestamp-string"]',
40-
)!;
40+
const timestampString = getElement('[data-test="timestamp-string"]')!;
4141
expect(timestampString.innerHTML).toEqual("Feb 01, 2020");
4242
expect(timestampString.getAttribute("datetime")).toEqual("2020-02-01");
4343

44-
const timestampDate = target.querySelector('[data-test="timestamp-date"]')!;
44+
const timestampDate = getElement('[data-test="timestamp-date"]')!;
4545
expect(timestampDate.innerHTML).toEqual(
4646
dayjs(date).format("dddd @ h:mm a"),
4747
);
4848
expect(timestampDate.getAttribute("datetime")).toEqual(date + "");
4949

50-
const timestampNumber = target.querySelector(
51-
'[data-test="timestamp-number"]',
52-
)!;
50+
const timestampNumber = getElement('[data-test="timestamp-number"]')!;
5351
expect(timestampNumber.innerHTML).toEqual(
5452
dayjs(1e10).format("dddd @ h:mm A · MMMM D, YYYY"),
5553
);
5654
expect(timestampNumber.getAttribute("datetime")).toEqual(1e10 + "");
5755

58-
const relative = target.querySelector('[data-test="relative"]')!;
56+
const relative = getElement('[data-test="relative"]')!;
5957
expect(relative.innerHTML).toEqual("a few seconds ago");
6058
expect(relative.getAttribute("datetime")).toEqual(timestamp);
6159

62-
const relativeTimestamp = target.querySelector(
63-
'[data-test="relative-timestamp"]',
64-
)!;
60+
const relativeTimestamp = getElement('[data-test="relative-timestamp"]')!;
6561
expect(/ago/.test(relativeTimestamp.innerHTML)).toEqual(true);
6662
expect(relativeTimestamp.getAttribute("datetime")).toEqual("2021-02-02");
6763

68-
const relativeTimestampNumber = target.querySelector(
64+
const relativeTimestampNumber = getElement(
6965
'[data-test="relative-timestamp-number"]',
7066
)!;
7167
expect(relativeTimestampNumber.innerHTML).toEqual("54 years ago");
7268
expect(relativeTimestampNumber.getAttribute("datetime")).toEqual(1e10 + "");
7369

74-
const relativeLive = target.querySelector(
75-
'[data-test="relative-live"]',
76-
) as HTMLTimeElement;
77-
const actionRelativeLive = target.querySelector(
78-
'[data-test="action-relative-live"]',
79-
) as HTMLTimeElement;
70+
const relativeLive = getElement('[data-test="relative-live"]');
71+
const actionRelativeLive = getElement('[data-test="action-relative-live"]');
8072

8173
expect(relativeLive.title).toEqual(DEFAULT_TIME);
8274
expect(actionRelativeLive.title).toEqual(DEFAULT_TIME);
@@ -105,47 +97,37 @@ describe("svelte-time", () => {
10597
expect(relativeLive.getAttribute("datetime")).toEqual(timestamp);
10698
expect(actionRelativeLive.getAttribute("datetime")).toEqual(timestamp);
10799

108-
const action = target.querySelector(
109-
'[data-test="action"]',
110-
) as HTMLTimeElement;
100+
const action = getElement('[data-test="action"]');
111101
expect(action.innerText).toEqual(DEFAULT_TIME);
112102
expect(action.getAttribute("datetime")).toEqual(timestamp);
113103

114-
const actionTimestampFormat = target.querySelector(
104+
const actionTimestampFormat = getElement(
115105
'[data-test="action-timestamp-format"]',
116-
) as HTMLTimeElement;
106+
);
117107
expect(actionTimestampFormat.innerText).toEqual(
118108
dayjs("2021-02-02").format("dddd @ h:mm A · MMMM D, YYYY"),
119109
);
120110
expect(actionTimestampFormat.getAttribute("datetime")).toEqual(
121111
"2021-02-02",
122112
);
123113

124-
const dayjsOnly = target.querySelector('[data-test="dayjs"]')!;
114+
const dayjsOnly = getElement('[data-test="dayjs"]')!;
125115
expect(dayjsOnly.innerHTML).toEqual(DEFAULT_TIME);
126116

127-
const dayjsOnlyRelative = target.querySelector(
128-
'[data-test="dayjs-relative"]',
129-
)!;
117+
const dayjsOnlyRelative = getElement('[data-test="dayjs-relative"]')!;
130118
expect(dayjsOnlyRelative.innerHTML).toEqual("a few seconds ago");
131119
});
132120

133121
test("SvelteTimeLive.test.svelte", async () => {
134122
const target = document.body;
135123

136-
instance = new SvelteTimeLive({
137-
target,
138-
});
124+
instance = new SvelteTimeLive({ target });
139125

140126
const date = new Date();
141127
const timestamp = date.toISOString();
142128

143-
const relativeLive = target.querySelector(
144-
'[data-test="relative-live"]',
145-
) as HTMLTimeElement;
146-
const actionRelativeLive = target.querySelector(
147-
'[data-test="action-relative-live"]',
148-
) as HTMLTimeElement;
129+
const relativeLive = getElement('[data-test="relative-live"]');
130+
const actionRelativeLive = getElement('[data-test="action-relative-live"]');
149131

150132
expect(relativeLive.title).toEqual(DEFAULT_TIME);
151133
expect(actionRelativeLive.title).toEqual(DEFAULT_TIME);
@@ -176,22 +158,14 @@ describe("svelte-time", () => {
176158
test("SvelteTimeCustomTitle.test.svelte", async () => {
177159
const target = document.body;
178160

179-
instance = new SvelteTimeCustomTitle({
180-
target,
181-
});
182-
183-
const relativeLive = target.querySelector(
184-
'[data-test="custom-title"]',
185-
) as HTMLTimeElement;
186-
const relativeLiveOmit = target.querySelector(
187-
'[data-test="custom-title-omit"]',
188-
) as HTMLTimeElement;
189-
const actionRelativeLive = target.querySelector(
190-
'[data-test="action-custom-title"]',
191-
) as HTMLTimeElement;
192-
const actionRelativeOmit = target.querySelector(
161+
instance = new SvelteTimeCustomTitle({ target });
162+
163+
const relativeLive = getElement('[data-test="custom-title"]');
164+
const relativeLiveOmit = getElement('[data-test="custom-title-omit"]');
165+
const actionRelativeLive = getElement('[data-test="action-custom-title"]');
166+
const actionRelativeOmit = getElement(
193167
'[data-test="action-custom-title-omit"]',
194-
) as HTMLTimeElement;
168+
);
195169

196170
expect(relativeLiveOmit.title).toEqual("");
197171
expect(relativeLive.title).toEqual("Custom title");

0 commit comments

Comments
 (0)