diff --git a/frontend/pages/queries/ManageQueriesPage/ManageQueriesPage.jsx b/frontend/pages/queries/ManageQueriesPage/ManageQueriesPage.jsx
index 83b93639f5..eaed5ca982 100644
--- a/frontend/pages/queries/ManageQueriesPage/ManageQueriesPage.jsx
+++ b/frontend/pages/queries/ManageQueriesPage/ManageQueriesPage.jsx
@@ -65,7 +65,7 @@ export class ManageQueriesPage extends Component {
.then(() => {
dispatch(renderFlash('success', 'Queries successfully deleted.'));
- this.setState({ showModal: false });
+ this.setState({ checkedQueryIDs: [], showModal: false });
return false;
})
diff --git a/frontend/pages/queries/ManageQueriesPage/ManageQueriesPage.tests.jsx b/frontend/pages/queries/ManageQueriesPage/ManageQueriesPage.tests.jsx
index c6815c5d90..243a445975 100644
--- a/frontend/pages/queries/ManageQueriesPage/ManageQueriesPage.tests.jsx
+++ b/frontend/pages/queries/ManageQueriesPage/ManageQueriesPage.tests.jsx
@@ -1,6 +1,6 @@
import React from 'react';
import expect from 'expect';
-import { find } from 'lodash';
+import { find, noop } from 'lodash';
import { mount } from 'enzyme';
import ConnectedManageQueriesPage, { ManageQueriesPage } from 'pages/queries/ManageQueriesPage/ManageQueriesPage';
@@ -54,6 +54,44 @@ describe('ManageQueriesPage - component', () => {
expect(page.find('QueryDetailsSidePanel').length).toEqual(1);
});
+
+ it('resets checkedQueryIDs after successfully deleting checked queries', (done) => {
+ const fakeEvt = { preventDefault: noop };
+ const props = {
+ dispatch: () => Promise.resolve(),
+ loadingQueries: false,
+ queries: [queryStub],
+ };
+ const page = mount();
+
+ page.setState({ checkedQueryIDs: [queryStub.id], showModal: true });
+ page.node.onDeleteQueries(fakeEvt)
+ .then(() => {
+ expect(page.state('showModal')).toEqual(false);
+ expect(page.state('checkedQueryIDs')).toEqual([]);
+ done();
+ })
+ .catch(done);
+ });
+
+ it('does not reset checkedQueryIDs if deleting a checked query is unsuccessful', (done) => {
+ const fakeEvt = { preventDefault: noop };
+ const props = {
+ dispatch: () => Promise.reject(),
+ loadingQueries: false,
+ queries: [queryStub],
+ };
+ const page = mount();
+
+ page.setState({ checkedQueryIDs: [queryStub.id], showModal: true });
+ page.node.onDeleteQueries(fakeEvt)
+ .then(() => {
+ expect(page.state('showModal')).toEqual(false);
+ expect(page.state('checkedQueryIDs')).toEqual([queryStub.id]);
+ done();
+ })
+ .catch(done);
+ });
});
it('filters the queries list', () => {