|
1 | | -import { render } from '@testing-library/react' |
| 1 | +/** @jest-environment node */ |
| 2 | + |
2 | 3 | import React from 'react' |
| 4 | +import { renderToStaticMarkup } from 'react-dom/server' |
3 | 5 |
|
4 | 6 | import { UsercentricsScript } from '../../src/components/UsercentricsScript.js' |
5 | 7 |
|
6 | 8 | describe('Usercentrics', () => { |
7 | 9 | describe('components', () => { |
8 | 10 | describe('UsercentricsScript', () => { |
9 | 11 | it('should render basic props', () => { |
10 | | - const { container } = render(<UsercentricsScript settingsId="1234" />) |
| 12 | + const result = renderToStaticMarkup(<UsercentricsScript settingsId="1234" />) |
11 | 13 |
|
12 | | - expect(container.firstChild).toMatchInlineSnapshot(` |
13 | | - <script |
14 | | - async="" |
15 | | - data-settings-id="1234" |
16 | | - id="usercentrics-cmp" |
17 | | - src="https://app.usercentrics.eu/browser-ui/latest/loader.js" |
18 | | - /> |
19 | | - `) |
| 14 | + expect(result).toMatchInlineSnapshot( |
| 15 | + `"<script async="" data-settings-id="1234" id="usercentrics-cmp" src="https://app.usercentrics.eu/browser-ui/latest/loader.js"></script>"`, |
| 16 | + ) |
20 | 17 | }) |
21 | 18 |
|
22 | 19 | it('should render preview attribute', () => { |
23 | | - const { container } = render(<UsercentricsScript settingsId="1234" version="preview" />) |
| 20 | + const result = renderToStaticMarkup(<UsercentricsScript settingsId="1234" version="preview" />) |
24 | 21 |
|
25 | | - expect(container.firstChild).toHaveAttribute('data-version', 'preview') |
| 22 | + expect(result).toMatch('data-version="preview"') |
26 | 23 | }) |
27 | 24 |
|
28 | 25 | it('should allow disabling default async prop', () => { |
29 | | - const { container } = render(<UsercentricsScript settingsId="1234" async={undefined} defer />) |
| 26 | + const result = renderToStaticMarkup(<UsercentricsScript settingsId="1234" async={undefined} defer />) |
30 | 27 |
|
31 | | - expect(container.firstChild).not.toHaveAttribute('async') |
32 | | - expect(container.firstChild).toHaveAttribute('defer', '') |
| 28 | + expect(result).not.toMatch('async') |
| 29 | + expect(result).toMatch('defer') |
33 | 30 | }) |
34 | 31 |
|
35 | 32 | it('should allow specifying UI version', () => { |
36 | | - const { container } = render(<UsercentricsScript settingsId="1234" uiVersion="3.24.0" />) |
| 33 | + const result = renderToStaticMarkup(<UsercentricsScript settingsId="1234" uiVersion="3.24.0" />) |
37 | 34 |
|
38 | | - expect(container.firstChild).toHaveAttribute( |
39 | | - 'src', |
40 | | - 'https://app.usercentrics.eu/browser-ui/3.24.0/loader.js', |
41 | | - ) |
| 35 | + expect(result).toMatch('src="https://app.usercentrics.eu/browser-ui/3.24.0/loader.js"') |
42 | 36 | }) |
43 | 37 |
|
44 | 38 | it('should allow passing integrity prop', () => { |
45 | | - const { container } = render( |
| 39 | + const result = renderToStaticMarkup( |
46 | 40 | <UsercentricsScript |
47 | 41 | settingsId="1234" |
48 | 42 | uiVersion="3.24.0" |
49 | 43 | integrity="sha384-WRloNuM/QNkzJ4GkUAZgJ5CWgTFhVjsLKVQbACSHGOifUvw2WJk1QaY9mphkn96U" |
50 | 44 | />, |
51 | 45 | ) |
52 | 46 |
|
53 | | - expect(container.firstChild).toHaveAttribute( |
54 | | - 'integrity', |
55 | | - 'sha384-WRloNuM/QNkzJ4GkUAZgJ5CWgTFhVjsLKVQbACSHGOifUvw2WJk1QaY9mphkn96U', |
| 47 | + expect(result).toMatch( |
| 48 | + 'integrity="sha384-WRloNuM/QNkzJ4GkUAZgJ5CWgTFhVjsLKVQbACSHGOifUvw2WJk1QaY9mphkn96U"', |
56 | 49 | ) |
57 | 50 | }) |
58 | 51 |
|
59 | 52 | it('should not allow the src prop', () => { |
60 | | - const { container } = render( |
| 53 | + const result = renderToStaticMarkup( |
61 | 54 | <UsercentricsScript |
62 | 55 | settingsId="1234" |
63 | 56 | /** @ts-expect-error: Type 'string' is not assignable to type 'undefined'. */ |
64 | 57 | src="test.js" |
65 | 58 | />, |
66 | 59 | ) |
67 | 60 |
|
68 | | - expect(container.firstChild).toHaveAttribute( |
69 | | - 'src', |
70 | | - 'https://app.usercentrics.eu/browser-ui/latest/loader.js', |
71 | | - ) |
| 61 | + expect(result).toMatch('src="https://app.usercentrics.eu/browser-ui/latest/loader.js"') |
72 | 62 | }) |
73 | 63 | }) |
74 | 64 | }) |
|
0 commit comments