Skip to content

Commit a724b43

Browse files
committed
test: refactor render with app context
Signed-off-by: Adam Setch <[email protected]>
1 parent de87f0c commit a724b43

File tree

7 files changed

+311
-240
lines changed

7 files changed

+311
-240
lines changed

src/renderer/__helpers__/test-utils.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,9 @@ export function renderWithAppContext(
115115
'updateFilter',
116116
];
117117

118-
const { appContext, ...rest } = options as Partial<Record<string, unknown>> & {
118+
const { appContext, ...rest } = options as Partial<
119+
Record<string, unknown>
120+
> & {
119121
appContext?: Partial<AppContextState>;
120122
};
121123

src/renderer/components/filters/FilterSection.test.tsx

Lines changed: 37 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { stateFilter } from '../../utils/notifications/filters';
1111
import { FilterSection } from './FilterSection';
1212

1313
describe('renderer/components/filters/FilterSection.tsx', () => {
14-
const updateFilter = jest.fn();
14+
const mockUpdateFilter = jest.fn();
1515

1616
const mockFilter = stateFilter;
1717
const mockFilterSetting = 'filterStates';
@@ -22,18 +22,20 @@ describe('renderer/components/filters/FilterSection.tsx', () => {
2222
<FilterSection
2323
filter={{
2424
...mockFilter,
25-
requiresDetailsNotifications: true }}
25+
requiresDetailsNotifications: true,
26+
}}
2627
filterSetting={mockFilterSetting}
2728
icon={MarkGithubIcon}
2829
id={'FilterSectionTest'}
2930
title={'FilterSectionTitle'}
3031
/>,
3132
{
32-
33-
settings: {
34-
...mockSettings,
35-
detailedNotifications: true } as SettingsState,
36-
notifications: mockAccountNotifications },
33+
settings: {
34+
...mockSettings,
35+
detailedNotifications: true,
36+
} as SettingsState,
37+
notifications: mockAccountNotifications,
38+
},
3739
);
3840

3941
expect(tree).toMatchSnapshot();
@@ -44,18 +46,20 @@ describe('renderer/components/filters/FilterSection.tsx', () => {
4446
<FilterSection
4547
filter={{
4648
...mockFilter,
47-
requiresDetailsNotifications: false }}
49+
requiresDetailsNotifications: false,
50+
}}
4851
filterSetting={mockFilterSetting}
4952
icon={MarkGithubIcon}
5053
id={'FilterSectionTest'}
5154
title={'FilterSectionTitle'}
5255
/>,
5356
{
54-
55-
settings: {
56-
...mockSettings,
57-
detailedNotifications: false } as SettingsState,
58-
notifications: mockAccountNotifications },
57+
settings: {
58+
...mockSettings,
59+
detailedNotifications: false,
60+
} as SettingsState,
61+
notifications: mockAccountNotifications,
62+
},
5963
);
6064

6165
expect(tree).toMatchSnapshot();
@@ -73,18 +77,23 @@ describe('renderer/components/filters/FilterSection.tsx', () => {
7377
title={'FilterSectionTitle'}
7478
/>,
7579
{
76-
77-
settings: {
78-
...mockSettings,
79-
filterStates: [] },
80-
notifications: [],
81-
updateFilter },
80+
settings: {
81+
...mockSettings,
82+
filterStates: [],
83+
},
84+
notifications: [],
85+
updateFilter: mockUpdateFilter,
86+
},
8287
);
8388
});
8489

8590
await userEvent.click(screen.getByLabelText('Open'));
8691

87-
expect(updateFilter).toHaveBeenCalledWith(mockFilterSetting, 'open', true);
92+
expect(mockUpdateFilter).toHaveBeenCalledWith(
93+
mockFilterSetting,
94+
'open',
95+
true,
96+
);
8897

8998
expect(
9099
screen.getByLabelText('Open').parentNode.parentNode,
@@ -102,18 +111,19 @@ describe('renderer/components/filters/FilterSection.tsx', () => {
102111
title={'FilterSectionTitle'}
103112
/>,
104113
{
105-
106-
settings: {
107-
...mockSettings,
108-
filterStates: ['open'] },
109-
notifications: [],
110-
updateFilter },
114+
settings: {
115+
...mockSettings,
116+
filterStates: ['open'],
117+
},
118+
notifications: [],
119+
updateFilter: mockUpdateFilter,
120+
},
111121
);
112122
});
113123

114124
await userEvent.click(screen.getByLabelText('Closed'));
115125

116-
expect(updateFilter).toHaveBeenCalledWith(
126+
expect(mockUpdateFilter).toHaveBeenCalledWith(
117127
mockFilterSetting,
118128
'closed',
119129
true,

src/renderer/components/filters/SearchFilter.test.tsx

Lines changed: 42 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,25 @@ import { renderWithAppContext } from '../../__helpers__/test-utils';
44
import { mockSettings } from '../../__mocks__/state-mocks';
55
import { SearchFilter } from './SearchFilter';
66

7-
const updateFilter = jest.fn();
8-
97
describe('renderer/components/filters/SearchFilter.tsx', () => {
8+
const mockUpdateFilter = jest.fn();
9+
1010
afterEach(() => {
1111
jest.clearAllMocks();
1212
});
1313

1414
describe('Include Search Tokens', () => {
1515
it('adds include actor token with prefix', () => {
1616
renderWithAppContext(<SearchFilter />, {
17-
settings: mockSettings, updateFilter });
17+
settings: mockSettings,
18+
updateFilter: mockUpdateFilter,
19+
});
1820

1921
const includeInput = screen.getByTitle('Include searches');
2022
fireEvent.change(includeInput, { target: { value: 'author:octocat' } });
2123
fireEvent.keyDown(includeInput, { key: 'Enter' });
2224

23-
expect(updateFilter).toHaveBeenCalledWith(
25+
expect(mockUpdateFilter).toHaveBeenCalledWith(
2426
'filterIncludeSearchTokens',
2527
'author:octocat',
2628
true,
@@ -29,13 +31,15 @@ describe('renderer/components/filters/SearchFilter.tsx', () => {
2931

3032
it('adds include org token with prefix', () => {
3133
renderWithAppContext(<SearchFilter />, {
32-
settings: mockSettings, updateFilter });
34+
settings: mockSettings,
35+
updateFilter: mockUpdateFilter,
36+
});
3337

3438
const includeInput = screen.getByTitle('Include searches');
3539
fireEvent.change(includeInput, { target: { value: 'org:gitify-app' } });
3640
fireEvent.keyDown(includeInput, { key: 'Enter' });
3741

38-
expect(updateFilter).toHaveBeenCalledWith(
42+
expect(mockUpdateFilter).toHaveBeenCalledWith(
3943
'filterIncludeSearchTokens',
4044
'org:gitify-app',
4145
true,
@@ -44,14 +48,17 @@ describe('renderer/components/filters/SearchFilter.tsx', () => {
4448

4549
it('adds include repo token with prefix', () => {
4650
renderWithAppContext(<SearchFilter />, {
47-
settings: mockSettings, updateFilter });
51+
settings: mockSettings,
52+
updateFilter: mockUpdateFilter,
53+
});
4854

4955
const includeInput = screen.getByTitle('Include searches');
5056
fireEvent.change(includeInput, {
51-
target: { value: 'repo:gitify-app/gitify' } });
57+
target: { value: 'repo:gitify-app/gitify' },
58+
});
5259
fireEvent.keyDown(includeInput, { key: 'Enter' });
5360

54-
expect(updateFilter).toHaveBeenCalledWith(
61+
expect(mockUpdateFilter).toHaveBeenCalledWith(
5562
'filterIncludeSearchTokens',
5663
'repo:gitify-app/gitify',
5764
true,
@@ -60,27 +67,32 @@ describe('renderer/components/filters/SearchFilter.tsx', () => {
6067

6168
it('prevent unrecognized include prefixes', () => {
6269
renderWithAppContext(<SearchFilter />, {
63-
settings: mockSettings, updateFilter });
70+
settings: mockSettings,
71+
updateFilter: mockUpdateFilter,
72+
});
6473

6574
const includeInput = screen.getByTitle('Include searches');
6675
fireEvent.change(includeInput, {
67-
target: { value: 'some:search' } });
76+
target: { value: 'some:search' },
77+
});
6878
fireEvent.keyDown(includeInput, { key: 'Enter' });
6979

70-
expect(updateFilter).not.toHaveBeenCalledWith();
80+
expect(mockUpdateFilter).not.toHaveBeenCalledWith();
7181
});
7282
});
7383

7484
describe('Exclude Search Tokens', () => {
7585
it('adds exclude actor token with prefix', () => {
7686
renderWithAppContext(<SearchFilter />, {
77-
settings: mockSettings, updateFilter });
87+
settings: mockSettings,
88+
updateFilter: mockUpdateFilter,
89+
});
7890

7991
const includeInput = screen.getByTitle('Exclude searches');
8092
fireEvent.change(includeInput, { target: { value: 'author:octocat' } });
8193
fireEvent.keyDown(includeInput, { key: 'Enter' });
8294

83-
expect(updateFilter).toHaveBeenCalledWith(
95+
expect(mockUpdateFilter).toHaveBeenCalledWith(
8496
'filterExcludeSearchTokens',
8597
'author:octocat',
8698
true,
@@ -89,13 +101,15 @@ describe('renderer/components/filters/SearchFilter.tsx', () => {
89101

90102
it('adds exclude org token with prefix', () => {
91103
renderWithAppContext(<SearchFilter />, {
92-
settings: mockSettings, updateFilter });
104+
settings: mockSettings,
105+
updateFilter: mockUpdateFilter,
106+
});
93107

94108
const excludeInput = screen.getByTitle('Exclude searches');
95109
fireEvent.change(excludeInput, { target: { value: 'org:gitify-app' } });
96110
fireEvent.keyDown(excludeInput, { key: 'Enter' });
97111

98-
expect(updateFilter).toHaveBeenCalledWith(
112+
expect(mockUpdateFilter).toHaveBeenCalledWith(
99113
'filterExcludeSearchTokens',
100114
'org:gitify-app',
101115
true,
@@ -104,14 +118,17 @@ describe('renderer/components/filters/SearchFilter.tsx', () => {
104118

105119
it('adds exclude repo token with prefix', () => {
106120
renderWithAppContext(<SearchFilter />, {
107-
settings: mockSettings, updateFilter });
121+
settings: mockSettings,
122+
updateFilter: mockUpdateFilter,
123+
});
108124

109125
const excludeInput = screen.getByTitle('Exclude searches');
110126
fireEvent.change(excludeInput, {
111-
target: { value: 'repo:gitify-app/gitify' } });
127+
target: { value: 'repo:gitify-app/gitify' },
128+
});
112129
fireEvent.keyDown(excludeInput, { key: 'Enter' });
113130

114-
expect(updateFilter).toHaveBeenCalledWith(
131+
expect(mockUpdateFilter).toHaveBeenCalledWith(
115132
'filterExcludeSearchTokens',
116133
'repo:gitify-app/gitify',
117134
true,
@@ -120,14 +137,17 @@ describe('renderer/components/filters/SearchFilter.tsx', () => {
120137

121138
it('prevent unrecognized exclude prefixes', () => {
122139
renderWithAppContext(<SearchFilter />, {
123-
settings: mockSettings, updateFilter });
140+
settings: mockSettings,
141+
updateFilter: mockUpdateFilter,
142+
});
124143

125144
const excludeInput = screen.getByTitle('Exclude searches');
126145
fireEvent.change(excludeInput, {
127-
target: { value: 'some:search' } });
146+
target: { value: 'some:search' },
147+
});
128148
fireEvent.keyDown(excludeInput, { key: 'Enter' });
129149

130-
expect(updateFilter).not.toHaveBeenCalledWith();
150+
expect(mockUpdateFilter).not.toHaveBeenCalledWith();
131151
});
132152
});
133153
});

0 commit comments

Comments
 (0)