Skip to content

Commit 43f32c7

Browse files
committed
tests: Add tests for SubServerStatus component
1 parent 36e8283 commit 43f32c7

File tree

3 files changed

+66
-0
lines changed

3 files changed

+66
-0
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import React from 'react';
2+
import { renderWithProviders } from 'util/tests';
3+
import SubServerStatus from 'components/common/SubServerStatus';
4+
5+
describe('SubServer Status Component', () => {
6+
const render = (isDisabled: boolean, errorMessage?: string) => {
7+
const cmp = (
8+
<SubServerStatus isDisabled={isDisabled} errorMessage={errorMessage} />
9+
);
10+
return renderWithProviders(cmp);
11+
};
12+
13+
it('should display disabled', () => {
14+
const { getByText } = render(true);
15+
expect(getByText('This subserver is turned off so this interface is not accessible.')).toBeInTheDocument();
16+
});
17+
18+
it('should display error', () => {
19+
const { getByText } = render(false);
20+
expect(getByText('This subserver encountered an error and failed to start up.')).toBeInTheDocument();
21+
});
22+
23+
it('should match error message', () => {
24+
const { getByText } = render(false, 'Test error message');
25+
expect(getByText('Test error message')).toBeInTheDocument();
26+
});
27+
});

app/src/__tests__/components/loop/LoopPage.spec.tsx

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,5 +216,24 @@ describe('LoopPage component', () => {
216216
expect(store.settingsStore.channelSort.field).toBeUndefined();
217217
expect(store.settingsStore.channelSort.descending).toBe(true);
218218
});
219+
220+
it('should display subserver disabled message', () => {
221+
const { getByText, store } = render();
222+
223+
const disableLoop = store.subServerStore.serverStatus.subServersMap.map((subServer) => {
224+
const [service, status] = subServer;
225+
226+
if(service === 'loop') {
227+
status.disabled = true;
228+
}
229+
230+
return [service, status];
231+
});
232+
233+
store.subServerStore.serverStatus.subServersMap = disableLoop;
234+
render();
235+
236+
expect(getByText('This subserver is turned off so this interface is not accessible.')).toBeInTheDocument();
237+
});
219238
});
220239
});

app/src/__tests__/components/pool/PoolPage.spec.tsx

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ describe('PoolPage', () => {
1010

1111
beforeEach(async () => {
1212
store = createStore();
13+
await store.fetchAllData();
1314
});
1415

1516
const render = () => {
@@ -27,4 +28,23 @@ describe('PoolPage', () => {
2728
fireEvent.click(getByText('download.svg'));
2829
expect(saveAs).toBeCalledWith(expect.any(Blob), 'leases.csv');
2930
});
31+
32+
it('should display subserver disabled message', () => {
33+
const { getByText, store } = render();
34+
35+
const disablePool = store.subServerStore.serverStatus.subServersMap.map((subServer) => {
36+
const [service, status] = subServer;
37+
38+
if(service === 'pool') {
39+
status.disabled = true;
40+
}
41+
42+
return [service, status];
43+
});
44+
45+
store.subServerStore.serverStatus.subServersMap = disablePool;
46+
render();
47+
48+
expect(getByText('This subserver is turned off so this interface is not accessible.')).toBeInTheDocument();
49+
});
3050
});

0 commit comments

Comments
 (0)