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', () => {