Skip to content

Commit 8420ecb

Browse files
authored
Merge pull request Graylog2#8842 from Graylog2/sync-url-after-adding-query-part-from-action
Sync URL after updating current query from action.
2 parents 5a78b92 + fa87183 commit 8420ecb

File tree

3 files changed

+12
-10
lines changed

3 files changed

+12
-10
lines changed

graylog2-web-interface/src/views/hooks/SyncWithQueryParameters.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ export const useSyncWithQueryParameters = (query: string) => {
6767
useEffect(() => syncWithQueryParameters(query, history.replace), []);
6868

6969
useActionListeners(
70-
[QueriesActions.update.completed],
70+
[QueriesActions.update.completed, QueriesActions.query.completed],
7171
() => syncWithQueryParameters(query),
7272
[query],
7373
);

graylog2-web-interface/src/views/hooks/SyncWithQueryParameters.test.jsx

+4-5
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import * as React from 'react';
33
import { render } from 'wrappedTestingLibrary';
44
import * as Immutable from 'immutable';
55
import asMock from 'helpers/mocking/AsMock';
6+
import mockAction from 'helpers/mocking/MockAction';
67

78
import history from 'util/History';
89
import { ViewStore } from 'views/stores/ViewStore';
@@ -16,11 +17,8 @@ import { syncWithQueryParameters, useSyncWithQueryParameters } from './SyncWithQ
1617

1718
jest.mock('views/actions/QueriesActions', () => ({
1819
QueriesActions: {
19-
update: {
20-
completed: {
21-
listen: jest.fn(() => () => {}),
22-
},
23-
},
20+
update: mockAction(),
21+
query: mockAction(),
2422
},
2523
}));
2624

@@ -157,6 +155,7 @@ describe('SyncWithQueryParameters', () => {
157155
render(<TestComponent />);
158156

159157
expect(QueriesActions.update.completed.listen).toHaveBeenCalled();
158+
expect(QueriesActions.query.completed.listen).toHaveBeenCalled();
160159
});
161160
});
162161
});

graylog2-web-interface/test/helpers/mocking/MockAction.js

+7-4
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,13 @@
22

33
import type { ListenableAction } from 'stores/StoreTypes';
44

5-
const mockAction = <R: function>(fn: R): ListenableAction<R> => {
6-
return Object.assign(fn, {
7-
listen: jest.fn(() => jest.fn()),
8-
completed: { listen: jest.fn(() => jest.fn()) },
5+
const listenable = () => ({ listen: jest.fn(() => jest.fn()) });
6+
7+
const noop: function = jest.fn();
8+
9+
const mockAction = <R: function>(fn: R = noop): ListenableAction<R> => {
10+
return Object.assign(fn, listenable(), {
11+
completed: listenable(),
912
promise: jest.fn(),
1013
});
1114
};

0 commit comments

Comments
 (0)