Skip to content

Commit 11f9f3e

Browse files
committed
Improve tests
1 parent a1d3b00 commit 11f9f3e

File tree

1 file changed

+24
-18
lines changed

1 file changed

+24
-18
lines changed

src/archivist/extract/exposedFilters.test.js

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ describe('exposedFilters', () => {
77
let webPageDOM;
88

99
before(() => {
10-
webPageDOM = createWebPageDOM('<!DOCTYPE html><html><body></body></html>');
10+
webPageDOM = createWebPageDOM('<!DOCTYPE html><html><body></body></html>', 'https://example.com');
1111
});
1212

1313
describe('#removeQueryParams', () => {
@@ -16,7 +16,7 @@ describe('exposedFilters', () => {
1616

1717
before(() => {
1818
link = webPageDOM.createElement('a');
19-
link.href = 'https://example.com/page?utm_source=test&keep=value';
19+
link.setAttribute('href', 'https://example.com/page?utm_source=test&keep=value');
2020
webPageDOM.body.appendChild(link);
2121
});
2222

@@ -27,7 +27,7 @@ describe('exposedFilters', () => {
2727
it('removes the specified query parameters', () => {
2828
removeQueryParams(webPageDOM, ['utm_source']);
2929

30-
expect(link.href).to.equal('https://example.com/page?keep=value');
30+
expect(link.getAttribute('href')).to.equal('https://example.com/page?keep=value');
3131
});
3232
});
3333

@@ -36,7 +36,7 @@ describe('exposedFilters', () => {
3636

3737
before(() => {
3838
img = webPageDOM.createElement('img');
39-
img.src = 'https://example.com/image.jpg?width=100&keep=value';
39+
img.setAttribute('src', 'https://example.com/image.jpg?width=100&keep=value');
4040
webPageDOM.body.appendChild(img);
4141
});
4242

@@ -47,7 +47,7 @@ describe('exposedFilters', () => {
4747
it('removes the specified query parameters', () => {
4848
removeQueryParams(webPageDOM, ['width']);
4949

50-
expect(img.src).to.equal('https://example.com/image.jpg?keep=value');
50+
expect(img.getAttribute('src')).to.equal('https://example.com/image.jpg?keep=value');
5151
});
5252
});
5353

@@ -56,7 +56,7 @@ describe('exposedFilters', () => {
5656

5757
before(() => {
5858
link = webPageDOM.createElement('a');
59-
link.href = 'https://example.com/page?utm_source=test&keep=value';
59+
link.setAttribute('href', 'https://example.com/page?utm_source=test&keep=value');
6060
webPageDOM.body.appendChild(link);
6161
});
6262

@@ -67,7 +67,7 @@ describe('exposedFilters', () => {
6767
it('removes a single query parameter passed as string', () => {
6868
removeQueryParams(webPageDOM, 'utm_source');
6969

70-
expect(link.href).to.equal('https://example.com/page?keep=value');
70+
expect(link.getAttribute('href')).to.equal('https://example.com/page?keep=value');
7171
});
7272
});
7373

@@ -76,7 +76,7 @@ describe('exposedFilters', () => {
7676

7777
before(() => {
7878
link = webPageDOM.createElement('a');
79-
link.href = 'https://example.com/page?utm_source=test&keep=value';
79+
link.setAttribute('href', 'https://example.com/page?utm_source=test&keep=value');
8080
webPageDOM.body.appendChild(link);
8181
});
8282

@@ -87,27 +87,33 @@ describe('exposedFilters', () => {
8787
it('leaves the URL unchanged', () => {
8888
removeQueryParams(webPageDOM, []);
8989

90-
expect(link.href).to.equal('https://example.com/page?utm_source=test&keep=value');
90+
expect(link.getAttribute('href')).to.equal('https://example.com/page?utm_source=test&keep=value');
9191
});
9292
});
9393

9494
describe('with invalid URLs', () => {
9595
let link;
96+
let webPageDOMWithBaseURL;
97+
const invalidURL = 'ht^THIS_IS_WRONG^tp://example.com?utm_source=test';
9698

9799
before(() => {
98-
link = webPageDOM.createElement('a');
99-
link.href = 'ht^THIS_IS_WRONG^tp://example.com?utm_source=test';
100-
webPageDOM.body.appendChild(link);
100+
webPageDOMWithBaseURL = createWebPageDOM('<!DOCTYPE html><html><body></body></html>');
101+
});
102+
103+
before(() => {
104+
link = webPageDOMWithBaseURL.createElement('a');
105+
link.setAttribute('href', invalidURL);
106+
webPageDOMWithBaseURL.body.appendChild(link);
101107
});
102108

103109
after(() => {
104110
link.remove();
105111
});
106112

107113
it('ignores elements with invalid URLs', () => {
108-
removeQueryParams(webPageDOM, ['utm_source']);
114+
removeQueryParams(webPageDOMWithBaseURL, ['utm_source']);
109115

110-
expect(link.href).to.equal('ht^THIS_IS_WRONG^tp://example.com?utm_source=test');
116+
expect(link.getAttribute('href')).to.equal(invalidURL);
111117
});
112118
});
113119

@@ -116,7 +122,7 @@ describe('exposedFilters', () => {
116122

117123
before(() => {
118124
link = webPageDOM.createElement('a');
119-
link.href = 'https://example.com/page?utm_source=test&utm_medium=email&keep=value&remove=me';
125+
link.setAttribute('href', 'https://example.com/page?utm_source=test&utm_medium=email&keep=value&remove=me');
120126
webPageDOM.body.appendChild(link);
121127
});
122128

@@ -127,7 +133,7 @@ describe('exposedFilters', () => {
127133
it('removes all specified query parameters', () => {
128134
removeQueryParams(webPageDOM, [ 'utm_source', 'utm_medium', 'remove' ]);
129135

130-
expect(link.href).to.equal('https://example.com/page?keep=value');
136+
expect(link.getAttribute('href')).to.equal('https://example.com/page?keep=value');
131137
});
132138
});
133139

@@ -136,7 +142,7 @@ describe('exposedFilters', () => {
136142

137143
before(() => {
138144
link = webPageDOM.createElement('a');
139-
link.href = 'https://example.com/test?utm_source=to_remove_1&keep=true&utm_source=to_remove_2';
145+
link.setAttribute('href', 'https://example.com/test?utm_source=to_remove_1&keep=true&utm_source=to_remove_2');
140146
webPageDOM.body.appendChild(link);
141147
});
142148

@@ -147,7 +153,7 @@ describe('exposedFilters', () => {
147153
it('removes all instances of duplicate query parameters', () => {
148154
removeQueryParams(webPageDOM, ['utm_source']);
149155

150-
expect(link.href).to.equal('https://example.com/test?keep=true');
156+
expect(link.getAttribute('href')).to.equal('https://example.com/test?keep=true');
151157
});
152158
});
153159

0 commit comments

Comments
 (0)