Skip to content

Commit f34e7e1

Browse files
authored
Migrate filterIconAssets.test.js to TypeScript (#2637)
* Rename packages\core\test\unit\Page\filterIconAssets.test.js to TypeScript * Adapt packages\core\test\unit\Page\filterIconAssets.test.js to TypeScript
1 parent acf4f7a commit f34e7e1

File tree

2 files changed

+94
-78
lines changed

2 files changed

+94
-78
lines changed

packages/core/test/unit/Page/filterIconAssets.test.js

Lines changed: 0 additions & 78 deletions
This file was deleted.
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
import { Page } from '../../../src/Page/index';
2+
import { PageConfig } from '../../../src/Page/PageConfig';
3+
import { SiteConfig } from '../../../src/Site/SiteConfig';
4+
5+
const mockPageConfigArgs = {} as ConstructorParameters<typeof PageConfig>[0];
6+
7+
jest.mock('../../../src/Page/PageConfig', () => ({
8+
PageConfig: jest.fn().mockImplementation(() => (
9+
// You can customize the behavior of the mock constructor here
10+
{
11+
asset: {
12+
fontAwesome: 'mock-fontawesome.css',
13+
glyphicons: 'mock-glyphicons.css',
14+
octicons: 'mock-octicons.css',
15+
materialIcons: 'mock-materialIcons.css',
16+
},
17+
}
18+
)),
19+
}));
20+
21+
test('should filter out all but font-awesome stylesheet', () => {
22+
const mockPageConfig = new PageConfig(mockPageConfigArgs);
23+
const mockPage = new Page(mockPageConfig, {} as SiteConfig);
24+
25+
mockPage.filterIconAssets(
26+
'<div><span class="fa-solid"></span></div>',
27+
'',
28+
);
29+
30+
expect(mockPage.asset.fontAwesome).toBeDefined();
31+
expect(mockPage.asset.glyphicons).toBeUndefined();
32+
expect(mockPage.asset.octicons).toBeUndefined();
33+
expect(mockPage.asset.materialIcons).toBeUndefined();
34+
});
35+
36+
test('should filter out all but glyphicon stylesheet', () => {
37+
const mockPageConfig = new PageConfig(mockPageConfigArgs);
38+
const mockPage = new Page(mockPageConfig, {} as SiteConfig);
39+
40+
mockPage.filterIconAssets(
41+
'<div><span class="glyphicon glyphicon-alert"></span></div>',
42+
'',
43+
);
44+
45+
expect(mockPage.asset.glyphicons).toBeDefined();
46+
expect(mockPage.asset.fontAwesome).toBeUndefined();
47+
expect(mockPage.asset.octicons).toBeUndefined();
48+
expect(mockPage.asset.materialIcons).toBeUndefined();
49+
});
50+
51+
test('should filter out all but octicon stylesheet', () => {
52+
const mockPageConfig = new PageConfig(mockPageConfigArgs);
53+
const mockPage = new Page(mockPageConfig, {} as SiteConfig);
54+
55+
mockPage.filterIconAssets(
56+
'<div><span class="octicon octicon-git-pull-request"></span></div>',
57+
'',
58+
);
59+
60+
expect(mockPage.asset.octicons).toBeDefined();
61+
expect(mockPage.asset.fontAwesome).toBeUndefined();
62+
expect(mockPage.asset.glyphicons).toBeUndefined();
63+
expect(mockPage.asset.materialIcons).toBeUndefined();
64+
});
65+
66+
test('should filter out all but material-icons stylesheet', () => {
67+
const mockPageConfig = new PageConfig(mockPageConfigArgs);
68+
const mockPage = new Page(mockPageConfig, {} as SiteConfig);
69+
70+
mockPage.filterIconAssets(
71+
'<div><span class="material-icons-round"></span></div>',
72+
'',
73+
);
74+
75+
expect(mockPage.asset.materialIcons).toBeDefined();
76+
expect(mockPage.asset.fontAwesome).toBeUndefined();
77+
expect(mockPage.asset.glyphicons).toBeUndefined();
78+
expect(mockPage.asset.octicons).toBeUndefined();
79+
});
80+
81+
test('should filter out all stylesheets', () => {
82+
const mockPageConfig = new PageConfig(mockPageConfigArgs);
83+
const mockPage = new Page(mockPageConfig, {} as SiteConfig);
84+
85+
mockPage.filterIconAssets(
86+
'<div></div>',
87+
'',
88+
);
89+
90+
expect(mockPage.asset.materialIcons).toBeUndefined();
91+
expect(mockPage.asset.fontAwesome).toBeUndefined();
92+
expect(mockPage.asset.glyphicons).toBeUndefined();
93+
expect(mockPage.asset.octicons).toBeUndefined();
94+
});

0 commit comments

Comments
 (0)