Skip to content

Commit 36c4710

Browse files
committed
test(ui): cover sanitizer attribute allowlist
1 parent 8460ae3 commit 36c4710

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

ui/artalk/src/lib/sanitizer.test.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,18 @@ describe('HTML sanitizer', () => {
3636
expect(html).not.toContain('onerror')
3737
})
3838

39+
it('keeps only explicitly allowlisted ARIA and data attributes', () => {
40+
const html = sanitize(`
41+
<a aria-label="permalink" aria-hidden="true" data-test="drop">link</a>
42+
<img aria-label="preview" data-src="https://example.com/image.png" data-test="drop">
43+
`)
44+
45+
expect(html).toContain('<a aria-label="permalink">link</a>')
46+
expect(html).toContain('<img aria-label="preview" data-src="https://example.com/image.png">')
47+
expect(html).not.toContain('aria-hidden')
48+
expect(html).not.toContain('data-test')
49+
})
50+
3951
it('handles the former insane parser ReDoS payload', () => {
4052
const payload = `<b>foo</b><foo bar= ${' -=""'.repeat(50)}`
4153
expect(sanitize(payload)).toContain('<b>foo</b>')

0 commit comments

Comments
 (0)