@@ -7,6 +7,8 @@ import MessagesTable, {
77} from 'components/Topics/Topic/Messages/MessagesTable' ;
88import { TopicMessage , TopicMessageTimestampTypeEnum } from 'generated-sources' ;
99import { useIsLiveMode } from 'lib/hooks/useMessagesFilters' ;
10+ import useAppParams from 'lib/hooks/useAppParams' ;
11+ import { LOCAL_STORAGE_KEY_PREFIX } from 'lib/constants' ;
1012
1113export 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+
3643describe ( '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