Skip to content

Commit 7217fb7

Browse files
committed
Add html doc tests
1 parent b8088a3 commit 7217fb7

1 file changed

Lines changed: 67 additions & 45 deletions

File tree

test/utils.test.js

Lines changed: 67 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -3,74 +3,96 @@ import assert from 'node:assert/strict';
33
import { describe, it } from 'node:test';
44

55
describe('stripWrappingParagraphs', () => {
6-
it('removes wrapping p tags', async () => {
7-
const input = '<p><x-greeting></x-greeting></p>';
8-
const expected = '<x-greeting></x-greeting>';
6+
describe('Html fragment', () => {
7+
it('removes wrapping p tags', async () => {
8+
const input = '<p><x-greeting></x-greeting></p>';
9+
const expected = '<x-greeting></x-greeting>';
910

10-
const result = stripWrappingParagraphs(input);
11+
const result = stripWrappingParagraphs(input);
1112

12-
assert.equal(result, expected);
13-
});
13+
assert.equal(result, expected);
14+
});
1415

15-
it('removes wrapping p tags (inner content)', async () => {
16-
const input = '<p><x-greeting>inner content</x-greeting></p>';
17-
const expected = '<x-greeting>inner content</x-greeting>';
16+
it('removes wrapping p tags (inner content)', async () => {
17+
const input = '<p><x-greeting>inner content</x-greeting></p>';
18+
const expected = '<x-greeting>inner content</x-greeting>';
1819

19-
const result = stripWrappingParagraphs(input);
20+
const result = stripWrappingParagraphs(input);
2021

21-
assert.equal(result, expected);
22-
});
22+
assert.equal(result, expected);
23+
});
2324

24-
it('removes wrapping p tags (inner content, newlines)', async () => {
25-
const input = '<p><x-greeting>inner\ncontent</x-greeting></p>';
26-
const expected = '<x-greeting>inner\ncontent</x-greeting>';
25+
it('removes wrapping p tags (inner content, newlines)', async () => {
26+
const input = '<p><x-greeting>inner\ncontent</x-greeting></p>';
27+
const expected = '<x-greeting>inner\ncontent</x-greeting>';
2728

28-
const result = stripWrappingParagraphs(input);
29+
const result = stripWrappingParagraphs(input);
2930

30-
assert.equal(result, expected);
31-
});
31+
assert.equal(result, expected);
32+
});
3233

33-
it('removes wrapping p tags (whitespace)', async () => {
34-
const input = '<p> \n\t<x-greeting></x-greeting> \n</p>';
35-
const expected = '<x-greeting></x-greeting>';
34+
it('removes wrapping p tags (whitespace)', async () => {
35+
const input = '<p> \n\t<x-greeting></x-greeting> \n</p>';
36+
const expected = '<x-greeting></x-greeting>';
3637

37-
const result = stripWrappingParagraphs(input);
38+
const result = stripWrappingParagraphs(input);
3839

39-
assert.equal(result, expected);
40-
});
40+
assert.equal(result, expected);
41+
});
4142

42-
it('does not remove wrapping p tags if it includes other content', async () => {
43-
const input = '<p>Hello <x-greeting></x-greeting></p>';
43+
it('does not remove wrapping p tags if it includes other content', async () => {
44+
const input = '<p>Hello <x-greeting></x-greeting></p>';
4445

45-
const result = stripWrappingParagraphs(input);
46+
const result = stripWrappingParagraphs(input);
4647

47-
assert.equal(result, input);
48-
});
48+
assert.equal(result, input);
49+
});
4950

50-
it('removes wrapping p tags (multiple)', async () => {
51-
const input = '<p><x-greeting></x-greeting></p>\n<p><x-test></x-test></p>';
52-
const expected = '<x-greeting></x-greeting>\n<x-test></x-test>';
51+
it('removes wrapping p tags (multiple)', async () => {
52+
const input =
53+
'<p><x-greeting></x-greeting></p>\n<p><x-test></x-test></p>';
54+
const expected = '<x-greeting></x-greeting>\n<x-test></x-test>';
5355

54-
const result = stripWrappingParagraphs(input);
56+
const result = stripWrappingParagraphs(input);
5557

56-
assert.equal(result, expected);
57-
});
58+
assert.equal(result, expected);
59+
});
5860

59-
it('removes nested wrapping p tags', async () => {
60-
const input = '<main><p><x-greeting></x-greeting></p></main>';
61-
const expected = '<main><x-greeting></x-greeting></main>';
61+
it('removes nested wrapping p tags', async () => {
62+
const input = '<main><p><x-greeting></x-greeting></p></main>';
63+
const expected = '<main><x-greeting></x-greeting></main>';
6264

63-
const result = stripWrappingParagraphs(input);
65+
const result = stripWrappingParagraphs(input);
6466

65-
assert.equal(result, expected);
67+
assert.equal(result, expected);
68+
});
69+
70+
it('removes double nested wrapping p tags', async () => {
71+
const input = '<main><div><p><x-greeting></x-greeting></p></div></main>';
72+
const expected = '<main><div><x-greeting></x-greeting></div></main>';
73+
74+
const result = stripWrappingParagraphs(input);
75+
76+
assert.equal(result, expected);
77+
});
6678
});
6779

68-
it('removes double nested wrapping p tags', async () => {
69-
const input = '<main><div><p><x-greeting></x-greeting></p></div></main>';
70-
const expected = '<main><div><x-greeting></x-greeting></div></main>';
80+
describe('Html document', () => {
81+
it('preserves html, head, and body tags', () => {
82+
const input = '<!DOCTYPE html><html lang="en"><head></head><body><p>Hello</p></body></html>';
83+
84+
const result = stripWrappingParagraphs(input);
85+
86+
assert.equal(result, input);
87+
});
88+
89+
it('strips p tags in body', () => {
90+
const input = '<!DOCTYPE html><html lang="en"><head></head><body><p><x-greeting></x-greeting></p></body></html>';
91+
const expected = '<!DOCTYPE html><html lang="en"><head></head><body><x-greeting></x-greeting></body></html>';
7192

72-
const result = stripWrappingParagraphs(input);
93+
const result = stripWrappingParagraphs(input);
7394

74-
assert.equal(result, expected);
95+
assert.equal(result, expected);
96+
});
7597
});
7698
});

0 commit comments

Comments
 (0)