Commit ae473c23 authored by davelopez's avatar davelopez
Browse files

Disable change datatype in bulk without Celery

parent 928bb4b4
Loading
Loading
Loading
Loading
+168 −130
Original line number Diff line number Diff line
@@ -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();

@@ -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: {
@@ -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(() => {
@@ -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);
            });
        });
    });
});
+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">
@@ -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">
@@ -34,7 +38,10 @@
                <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
@@ -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">
@@ -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>
@@ -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: {
@@ -153,6 +165,7 @@ export default {
        DatatypesProvider,
        SingleItemSelector,
        StatelessTags,
        ConfigProvider,
    },
    props: {
        history: { type: Object, required: true },