mirror of
https://github.com/balzack/databag.git
synced 2025-02-12 03:29:16 +00:00
more channel context testing
This commit is contained in:
parent
141b73037a
commit
1aa19dc654
@ -26,7 +26,7 @@ function ChannelView() {
|
|||||||
}, [channel.state])
|
}, [channel.state])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div data-testid="channels" count={renderCount}>
|
<div data-testid="channels" count={renderCount} offsync={channel.state.offsync.toString()}>
|
||||||
{ channels }
|
{ channels }
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
@ -43,20 +43,31 @@ function ChannelTestApp() {
|
|||||||
const realFetchWithTimeout = fetchUtil.fetchWithTimeout;
|
const realFetchWithTimeout = fetchUtil.fetchWithTimeout;
|
||||||
const realFetchWithCustomTimeout = fetchUtil.fetchWithCustomTimeout;
|
const realFetchWithCustomTimeout = fetchUtil.fetchWithCustomTimeout;
|
||||||
|
|
||||||
let fetchDetail = {};
|
let statusDetail;
|
||||||
let fetchSummary = {};
|
let statusSummary;
|
||||||
let fetchChannels = {};
|
let statusChannels;
|
||||||
|
let fetchDetail;
|
||||||
|
let fetchSummary;
|
||||||
|
let fetchChannels;
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
|
|
||||||
|
statusDetail = 200;
|
||||||
|
statusSummary = 200;
|
||||||
|
statusChannels = 200;
|
||||||
|
fetchDetail = {};
|
||||||
|
fetchSummary = {};
|
||||||
|
fetchChannels = {};
|
||||||
|
|
||||||
const mockFetch = jest.fn().mockImplementation((url, options) => {
|
const mockFetch = jest.fn().mockImplementation((url, options) => {
|
||||||
if (url.includes('detail')) {
|
if (url.includes('detail')) {
|
||||||
return Promise.resolve({
|
return Promise.resolve({
|
||||||
status: 200,
|
status: statusDetail,
|
||||||
json: () => Promise.resolve(fetchDetail),
|
json: () => Promise.resolve(fetchDetail),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else if (url.includes('summary')) {
|
else if (url.includes('summary')) {
|
||||||
return Promise.resolve({
|
return Promise.resolve({
|
||||||
status: 200,
|
status: statusSummary,
|
||||||
json: () => Promise.resolve(fetchSummary),
|
json: () => Promise.resolve(fetchSummary),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -76,7 +87,7 @@ afterEach(() => {
|
|||||||
fetchUtil.fetchWithCustomTimeout = realFetchWithCustomTimeout;
|
fetchUtil.fetchWithCustomTimeout = realFetchWithCustomTimeout;
|
||||||
});
|
});
|
||||||
|
|
||||||
test('testing channel sync', async () => {
|
test('add, update and remove channel', async () => {
|
||||||
fetchDetail = { dataType: 'superbasic', data: 'testdata' };
|
fetchDetail = { dataType: 'superbasic', data: 'testdata' };
|
||||||
fetchSummary = { guid: '11', dataType: 'superbasictopic', data: 'testdata' };
|
fetchSummary = { guid: '11', dataType: 'superbasictopic', data: 'testdata' };
|
||||||
|
|
||||||
@ -110,10 +121,28 @@ test('testing channel sync', async () => {
|
|||||||
expect(screen.getByTestId('summary').textContent).toBe('testdata');
|
expect(screen.getByTestId('summary').textContent).toBe('testdata');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
fetchChannels = [
|
||||||
|
{ id: '123', revision: 3, data: {
|
||||||
|
detailRevision: 4,
|
||||||
|
topicRevision: 5,
|
||||||
|
channelDetail: { dataType: 'superbasic', data: 'testdata2' },
|
||||||
|
}
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
await act( async () => {
|
||||||
|
await channelContext.actions.setRevision(2);
|
||||||
|
});
|
||||||
|
|
||||||
|
await waitFor(async () => {
|
||||||
|
expect(screen.getByTestId('channels').children).toHaveLength(1);
|
||||||
|
expect(screen.getByTestId('detail').textContent).toBe('testdata2');
|
||||||
|
});
|
||||||
|
|
||||||
fetchChannels = [ { id: '123', revision: 3 } ];
|
fetchChannels = [ { id: '123', revision: 3 } ];
|
||||||
|
|
||||||
await act( async () => {
|
await act( async () => {
|
||||||
await channelContext.actions.setRevision(1);
|
await channelContext.actions.setRevision(2);
|
||||||
});
|
});
|
||||||
|
|
||||||
await waitFor(async () => {
|
await waitFor(async () => {
|
||||||
@ -121,14 +150,20 @@ test('testing channel sync', async () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
await act( async () => {
|
await act( async () => {
|
||||||
await channelContext.actions.setRevision(2);
|
await channelContext.actions.setRevision(3);
|
||||||
});
|
});
|
||||||
|
|
||||||
await waitFor(async () => {
|
await waitFor(async () => {
|
||||||
expect(screen.getByTestId('channels').children).toHaveLength(0);
|
expect(screen.getByTestId('channels').children).toHaveLength(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
await waitFor(async () => {
|
||||||
|
expect(screen.getByTestId('channels').attributes.offsync.value).toBe("false");
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// set and clear of channel card
|
||||||
|
// add, update and remove topic
|
||||||
|
// unseal topic and channels
|
||||||
|
// offsync resync
|
||||||
|
Loading…
Reference in New Issue
Block a user