-
Notifications
You must be signed in to change notification settings - Fork 177
Expand file tree
/
Copy pathbase.test.tsx
More file actions
65 lines (49 loc) · 1.87 KB
/
base.test.tsx
File metadata and controls
65 lines (49 loc) · 1.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import React from 'react';
import { vi } from 'vitest';
import { Helmet } from '../../src';
import { render, unmount, getMountElement } from './utils';
vi.mock('../../src/reactVersion', () => ({ isReact19: true }));
afterEach(() => {
unmount();
});
describe('React 19 – base tag', () => {
describe('API', () => {
it('renders a base tag', () => {
render(<Helmet base={{ href: 'http://mysite.com/' }} />);
const base = getMountElement().querySelector('base');
expect(base).not.toBeNull();
expect(base).toHaveAttribute('href', 'http://mysite.com/');
});
it('renders base tag with target', () => {
render(<Helmet base={{ href: 'http://mysite.com/', target: '_blank' }} />);
const base = getMountElement().querySelector('base');
expect(base).toHaveAttribute('href', 'http://mysite.com/');
expect(base).toHaveAttribute('target', '_blank');
});
it('does not render a base tag when none specified', () => {
render(<Helmet />);
const base = getMountElement().querySelector('base');
expect(base).toBeNull();
});
it('updates base tag on re-render', () => {
render(<Helmet base={{ href: 'http://first.com/' }} />);
let base = getMountElement().querySelector('base');
expect(base).toHaveAttribute('href', 'http://first.com/');
render(<Helmet base={{ href: 'http://second.com/' }} />);
base = getMountElement().querySelector('base');
expect(base).toHaveAttribute('href', 'http://second.com/');
});
});
describe('Declarative API', () => {
it('renders a base tag from children', () => {
render(
<Helmet>
<base href="http://mysite.com/" />
</Helmet>
);
const base = getMountElement().querySelector('base');
expect(base).not.toBeNull();
expect(base).toHaveAttribute('href', 'http://mysite.com/');
});
});
});