Skip to content

Commit 2a9ad73

Browse files
author
Kalle Ott
committed
test: split client and server side tests
1 parent 37181eb commit 2a9ad73

File tree

2 files changed

+47
-23
lines changed

2 files changed

+47
-23
lines changed

test/index.test.tsx

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,12 @@
1-
/**
2-
* @jest-environment node
3-
*/
41
import React from 'react';
52
import { render } from '@testing-library/react';
63
import {
74
Icon,
85
SpriteContextProvider,
96
IconsCache,
107
initOnClient,
11-
renderSpriteSheetToString,
128
} from '../src/index';
139
import { act } from 'react-dom/test-utils';
14-
import { renderToString } from 'react-dom/server';
1510

1611
const svg1 = `<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24">
1712
<path d="M0 0h24v24H0z" fill="none"/>
@@ -63,24 +58,6 @@ test('should fill the cache when an icon is rendered', async () => {
6358
});
6459
});
6560

66-
test('render loaded svgs to a svg sprite sheet string', async () => {
67-
const cache: IconsCache = new Map();
68-
const renderedString = renderToString(
69-
<SpriteContextProvider knownIcons={cache} loadSVG={loadSVG}>
70-
<Icon url={'1'}></Icon>
71-
</SpriteContextProvider>,
72-
);
73-
74-
const renderedSpriteSheet = await renderSpriteSheetToString(
75-
renderedString,
76-
cache,
77-
);
78-
79-
expect(renderedSpriteSheet).toMatchInlineSnapshot(
80-
`"<svg><use xlink:href=\\"#1\\"></use></svg><svg id=\\"__SVG_SPRITE_SHEET__\\" style=\\"display:none\\"><symbol id=\\"1\\" xmlns=\\"http://www.w3.org/2000/svg\\" viewBox=\\"0 0 24 24\\"><path d=\\"M0 0h24v24H0z\\" fill=\\"none\\"/></symbol></svg>"`,
81-
);
82-
});
83-
8461
test('client should be able to initiate the cache from a rendered dom', async () => {
8562
const cache: IconsCache = new Map();
8663
document.body.innerHTML = `<svg id="__SVG_SPRITE_SHEET__" style="display:none">

test/ssr.test.tsx

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/**
2+
* @jest-environment node
3+
*/
4+
import React from 'react';
5+
import {
6+
Icon,
7+
SpriteContextProvider,
8+
IconsCache,
9+
renderSpriteSheetToString,
10+
} from '../src/index';
11+
import { renderToString } from 'react-dom/server';
12+
13+
const svg1 = `<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24">
14+
<path d="M0 0h24v24H0z" fill="none"/>
15+
</svg>`;
16+
const svg2 = `<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24">
17+
<path d="M0 0h24v24H0z" fill="none"/>
18+
</svg>`;
19+
20+
const loadSVG = async (url: string) => {
21+
switch (url) {
22+
case '1': {
23+
return svg1;
24+
}
25+
case '2':
26+
default:
27+
return svg2;
28+
}
29+
};
30+
31+
test('render loaded svgs to a svg sprite sheet string', async () => {
32+
const cache: IconsCache = new Map();
33+
const renderedString = renderToString(
34+
<SpriteContextProvider knownIcons={cache} loadSVG={loadSVG}>
35+
<Icon url={'1'}></Icon>
36+
</SpriteContextProvider>,
37+
);
38+
39+
const renderedSpriteSheet = await renderSpriteSheetToString(
40+
renderedString,
41+
cache,
42+
);
43+
44+
expect(renderedSpriteSheet).toMatchInlineSnapshot(
45+
`"<svg><use xlink:href=\\"#1\\"></use></svg><svg id=\\"__SVG_SPRITE_SHEET__\\" style=\\"display:none\\"><symbol id=\\"1\\" xmlns=\\"http://www.w3.org/2000/svg\\" viewBox=\\"0 0 24 24\\"><path d=\\"M0 0h24v24H0z\\" fill=\\"none\\"/></symbol></svg>"`,
46+
);
47+
});

0 commit comments

Comments
 (0)