Loading client/src/components/History/CurrentHistory/HistoryOperations/SelectionOperations.test.js +168 −130 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ import MockAdapter from "axios-mock-adapter"; import flushPromises from "flush-promises"; import { getLocalVue } from "jest/helpers"; import SelectionOperations from "./SelectionOperations.vue"; import MockConfigProvider from "components/providers/MockConfigProvider"; const localVue = getLocalVue(); Loading @@ -16,13 +17,15 @@ const BULK_ERROR_RESPONSE = { errors: [{ error: "Error reason", item: { history_content_type: "dataset", id: "dataset_id" } }], }; describe("History Selection Operations", () => { let axiosMock; let wrapper; const NO_TASKS_CONFIG = { enable_celery_tasks: false, }; const TASKS_CONFIG = { enable_celery_tasks: true, }; beforeEach(async () => { axiosMock = new MockAdapter(axios); wrapper = shallowMount( async function mountSelectionOperationsWrapper(config) { const wrapper = shallowMount( SelectionOperations, { propsData: { Loading @@ -33,10 +36,25 @@ describe("History Selection Operations", () => { isQuerySelection: false, totalItemsInQuery: 5, }, stubs: { ConfigProvider: MockConfigProvider(config), }, }, localVue ); await flushPromises(); return wrapper; } describe("History Selection Operations", () => { let axiosMock; let wrapper; describe("With Celery Enabled", () => { beforeEach(async () => { axiosMock = new MockAdapter(axios); wrapper = await mountSelectionOperationsWrapper(TASKS_CONFIG); await flushPromises(); }); afterEach(() => { Loading Loading @@ -167,3 +185,23 @@ describe("History Selection Operations", () => { }); }); }); describe("With Celery Disabled", () => { beforeEach(async () => { axiosMock = new MockAdapter(axios); wrapper = await mountSelectionOperationsWrapper(NO_TASKS_CONFIG); await flushPromises(); }); afterEach(() => { axiosMock.restore(); }); describe("Dropdown Menu", () => { it("should hide `Change data type` option", async () => { const option = '[data-description="change data type"]'; expect(wrapper.find(option).exists()).toBe(false); }); }); }); }); client/src/components/History/CurrentHistory/HistoryOperations/SelectionOperations.vue +70 −57 Original line number Diff line number Diff line <template> <section v-if="hasSelection"> <ConfigProvider v-slot="{ config }"> <b-dropdown text="Selection" size="sm" variant="primary" data-description="selected content menu"> <template v-slot:button-content> <span v-if="selectionMatchesQuery" data-test-id="all-filter-selected"> Loading @@ -18,7 +19,10 @@ <b-dropdown-item v-else v-b-modal:hide-selected-content data-description="hide option"> <span v-localize>Hide</span> </b-dropdown-item> <b-dropdown-item v-if="showDeleted" v-b-modal:restore-selected-content data-description="undelete option"> <b-dropdown-item v-if="showDeleted" v-b-modal:restore-selected-content data-description="undelete option"> <span v-localize>Undelete</span> </b-dropdown-item> <b-dropdown-item v-else v-b-modal:delete-selected-content data-description="delete option"> Loading @@ -27,14 +31,17 @@ <b-dropdown-item v-if="!showDeleted" v-b-modal:purge-selected-content data-description="purge option"> <span v-localize>Delete (permanently)</span> </b-dropdown-item> <b-dropdown-divider /> <b-dropdown-divider v-if="showBuildOptions" /> <b-dropdown-item v-if="showBuildOptions" data-description="build list" @click="buildDatasetList"> <span v-localize>Build Dataset List</span> </b-dropdown-item> <b-dropdown-item v-if="showBuildOptions" data-description="build pair" @click="buildDatasetPair"> <span v-localize>Build Dataset Pair</span> </b-dropdown-item> <b-dropdown-item v-if="showBuildOptions" data-description="build list of pairs" @click="buildListOfPairs"> <b-dropdown-item v-if="showBuildOptions" data-description="build list of pairs" @click="buildListOfPairs"> <span v-localize>Build List of Dataset Pairs</span> </b-dropdown-item> <b-dropdown-item Loading @@ -47,7 +54,10 @@ <b-dropdown-item v-b-modal:change-dbkey-of-selected-content data-description="change database build"> <span v-localize>Change Database/Build</span> </b-dropdown-item> <b-dropdown-item v-b-modal:change-datatype-of-selected-content data-description="change data type"> <b-dropdown-item v-if="config.enable_celery_tasks" v-b-modal:change-datatype-of-selected-content data-description="change data type"> <span v-localize>Change data type</span> </b-dropdown-item> <b-dropdown-item v-b-modal:add-tags-to-selected-content data-description="add tags"> Loading @@ -57,6 +67,7 @@ <span v-localize>Remove tags</span> </b-dropdown-item> </b-dropdown> </ConfigProvider> <b-modal id="hide-selected-content" title="Hide Selected Content?" title-tag="h2" @ok="hideSelected"> <p v-localize>Really hide {{ numSelected }} content items?</p> Loading Loading @@ -146,6 +157,7 @@ import { checkFilter, getQueryDict } from "store/historyStore/model/filtering"; import { GenomeProvider, DatatypesProvider } from "components/providers"; import SingleItemSelector from "components/SingleItemSelector"; import { StatelessTags } from "components/Tags"; import ConfigProvider from "components/providers/ConfigProvider"; export default { components: { Loading @@ -153,6 +165,7 @@ export default { DatatypesProvider, SingleItemSelector, StatelessTags, ConfigProvider, }, props: { history: { type: Object, required: true }, Loading Loading
client/src/components/History/CurrentHistory/HistoryOperations/SelectionOperations.test.js +168 −130 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ import MockAdapter from "axios-mock-adapter"; import flushPromises from "flush-promises"; import { getLocalVue } from "jest/helpers"; import SelectionOperations from "./SelectionOperations.vue"; import MockConfigProvider from "components/providers/MockConfigProvider"; const localVue = getLocalVue(); Loading @@ -16,13 +17,15 @@ const BULK_ERROR_RESPONSE = { errors: [{ error: "Error reason", item: { history_content_type: "dataset", id: "dataset_id" } }], }; describe("History Selection Operations", () => { let axiosMock; let wrapper; const NO_TASKS_CONFIG = { enable_celery_tasks: false, }; const TASKS_CONFIG = { enable_celery_tasks: true, }; beforeEach(async () => { axiosMock = new MockAdapter(axios); wrapper = shallowMount( async function mountSelectionOperationsWrapper(config) { const wrapper = shallowMount( SelectionOperations, { propsData: { Loading @@ -33,10 +36,25 @@ describe("History Selection Operations", () => { isQuerySelection: false, totalItemsInQuery: 5, }, stubs: { ConfigProvider: MockConfigProvider(config), }, }, localVue ); await flushPromises(); return wrapper; } describe("History Selection Operations", () => { let axiosMock; let wrapper; describe("With Celery Enabled", () => { beforeEach(async () => { axiosMock = new MockAdapter(axios); wrapper = await mountSelectionOperationsWrapper(TASKS_CONFIG); await flushPromises(); }); afterEach(() => { Loading Loading @@ -167,3 +185,23 @@ describe("History Selection Operations", () => { }); }); }); describe("With Celery Disabled", () => { beforeEach(async () => { axiosMock = new MockAdapter(axios); wrapper = await mountSelectionOperationsWrapper(NO_TASKS_CONFIG); await flushPromises(); }); afterEach(() => { axiosMock.restore(); }); describe("Dropdown Menu", () => { it("should hide `Change data type` option", async () => { const option = '[data-description="change data type"]'; expect(wrapper.find(option).exists()).toBe(false); }); }); }); });
client/src/components/History/CurrentHistory/HistoryOperations/SelectionOperations.vue +70 −57 Original line number Diff line number Diff line <template> <section v-if="hasSelection"> <ConfigProvider v-slot="{ config }"> <b-dropdown text="Selection" size="sm" variant="primary" data-description="selected content menu"> <template v-slot:button-content> <span v-if="selectionMatchesQuery" data-test-id="all-filter-selected"> Loading @@ -18,7 +19,10 @@ <b-dropdown-item v-else v-b-modal:hide-selected-content data-description="hide option"> <span v-localize>Hide</span> </b-dropdown-item> <b-dropdown-item v-if="showDeleted" v-b-modal:restore-selected-content data-description="undelete option"> <b-dropdown-item v-if="showDeleted" v-b-modal:restore-selected-content data-description="undelete option"> <span v-localize>Undelete</span> </b-dropdown-item> <b-dropdown-item v-else v-b-modal:delete-selected-content data-description="delete option"> Loading @@ -27,14 +31,17 @@ <b-dropdown-item v-if="!showDeleted" v-b-modal:purge-selected-content data-description="purge option"> <span v-localize>Delete (permanently)</span> </b-dropdown-item> <b-dropdown-divider /> <b-dropdown-divider v-if="showBuildOptions" /> <b-dropdown-item v-if="showBuildOptions" data-description="build list" @click="buildDatasetList"> <span v-localize>Build Dataset List</span> </b-dropdown-item> <b-dropdown-item v-if="showBuildOptions" data-description="build pair" @click="buildDatasetPair"> <span v-localize>Build Dataset Pair</span> </b-dropdown-item> <b-dropdown-item v-if="showBuildOptions" data-description="build list of pairs" @click="buildListOfPairs"> <b-dropdown-item v-if="showBuildOptions" data-description="build list of pairs" @click="buildListOfPairs"> <span v-localize>Build List of Dataset Pairs</span> </b-dropdown-item> <b-dropdown-item Loading @@ -47,7 +54,10 @@ <b-dropdown-item v-b-modal:change-dbkey-of-selected-content data-description="change database build"> <span v-localize>Change Database/Build</span> </b-dropdown-item> <b-dropdown-item v-b-modal:change-datatype-of-selected-content data-description="change data type"> <b-dropdown-item v-if="config.enable_celery_tasks" v-b-modal:change-datatype-of-selected-content data-description="change data type"> <span v-localize>Change data type</span> </b-dropdown-item> <b-dropdown-item v-b-modal:add-tags-to-selected-content data-description="add tags"> Loading @@ -57,6 +67,7 @@ <span v-localize>Remove tags</span> </b-dropdown-item> </b-dropdown> </ConfigProvider> <b-modal id="hide-selected-content" title="Hide Selected Content?" title-tag="h2" @ok="hideSelected"> <p v-localize>Really hide {{ numSelected }} content items?</p> Loading Loading @@ -146,6 +157,7 @@ import { checkFilter, getQueryDict } from "store/historyStore/model/filtering"; import { GenomeProvider, DatatypesProvider } from "components/providers"; import SingleItemSelector from "components/SingleItemSelector"; import { StatelessTags } from "components/Tags"; import ConfigProvider from "components/providers/ConfigProvider"; export default { components: { Loading @@ -153,6 +165,7 @@ export default { DatatypesProvider, SingleItemSelector, StatelessTags, ConfigProvider, }, props: { history: { type: Object, required: true }, Loading