Skip to content

Commit 90b0073

Browse files
committed
added tests
1 parent 160a659 commit 90b0073

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

frontend/src/components/Topics/Topic/Messages/__test__/MessagesTable.spec.tsx

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import MessagesTable, {
77
} from 'components/Topics/Topic/Messages/MessagesTable';
88
import { TopicMessage, TopicMessageTimestampTypeEnum } from 'generated-sources';
99
import { useIsLiveMode } from 'lib/hooks/useMessagesFilters';
10+
import useAppParams from 'lib/hooks/useAppParams';
11+
import { LOCAL_STORAGE_KEY_PREFIX } from 'lib/constants';
1012

1113
export const topicMessagePayload: TopicMessage = {
1214
partition: 29,
@@ -33,8 +35,16 @@ jest.mock('lib/hooks/useMessagesFilters', () => ({
3335
usePaginateTopics: jest.fn(),
3436
}));
3537

38+
jest.mock('lib/hooks/useAppParams', () => ({
39+
__esModule: true,
40+
default: jest.fn(),
41+
}));
42+
3643
describe('MessagesTable', () => {
3744
const renderComponent = (props?: Partial<MessagesTableProps>) => {
45+
(useAppParams as jest.Mock).mockImplementation(() => ({
46+
topicName: 'testTopic',
47+
}));
3848
return render(
3949
<MessagesTable messages={[]} isFetching={false} {...props} />
4050
);
@@ -99,4 +109,34 @@ describe('MessagesTable', () => {
99109
}
100110
});
101111
});
112+
113+
describe('should save messages preview into localstorage', () => {
114+
beforeEach(() => {
115+
renderComponent({ messages: mockTopicsMessages, isFetching: false });
116+
});
117+
118+
it('should save messages preview into localstorage', async () => {
119+
const previewButtons = screen.getAllByText('Preview');
120+
await userEvent.click(previewButtons[0]);
121+
await userEvent.type(screen.getByPlaceholderText('Field'), 'test1');
122+
await userEvent.type(screen.getByPlaceholderText('Json Path'), 'test2');
123+
await userEvent.click(screen.getByText('Save'));
124+
await userEvent.click(previewButtons[1]);
125+
await userEvent.type(screen.getByPlaceholderText('Field'), 'test3');
126+
await userEvent.type(screen.getByPlaceholderText('Json Path'), 'test4');
127+
await userEvent.click(screen.getByText('Save'));
128+
expect(
129+
global.localStorage.getItem(
130+
`${LOCAL_STORAGE_KEY_PREFIX}-message-preview`
131+
)
132+
).toEqual(
133+
JSON.stringify({
134+
testTopic: {
135+
keyFilters: [{ field: 'test1', path: 'test2' }],
136+
contentFilters: [{ field: 'test3', path: 'test4' }],
137+
},
138+
})
139+
);
140+
});
141+
});
102142
});

0 commit comments

Comments
 (0)