summaryrefslogtreecommitdiff
path: root/spec/frontend/registry/explorer/components/details_page/delete_modal_spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/registry/explorer/components/details_page/delete_modal_spec.js')
-rw-r--r--spec/frontend/registry/explorer/components/details_page/delete_modal_spec.js152
1 files changed, 0 insertions, 152 deletions
diff --git a/spec/frontend/registry/explorer/components/details_page/delete_modal_spec.js b/spec/frontend/registry/explorer/components/details_page/delete_modal_spec.js
deleted file mode 100644
index d2fe5af3a94..00000000000
--- a/spec/frontend/registry/explorer/components/details_page/delete_modal_spec.js
+++ /dev/null
@@ -1,152 +0,0 @@
-import { GlSprintf, GlFormInput } from '@gitlab/ui';
-import { shallowMount } from '@vue/test-utils';
-import { nextTick } from 'vue';
-import component from '~/registry/explorer/components/details_page/delete_modal.vue';
-import {
- REMOVE_TAG_CONFIRMATION_TEXT,
- REMOVE_TAGS_CONFIRMATION_TEXT,
- DELETE_IMAGE_CONFIRMATION_TITLE,
- DELETE_IMAGE_CONFIRMATION_TEXT,
-} from '~/registry/explorer/constants';
-import { GlModal } from '../../stubs';
-
-describe('Delete Modal', () => {
- let wrapper;
-
- const findModal = () => wrapper.findComponent(GlModal);
- const findDescription = () => wrapper.find('[data-testid="description"]');
- const findInputComponent = () => wrapper.findComponent(GlFormInput);
-
- const mountComponent = (propsData) => {
- wrapper = shallowMount(component, {
- propsData,
- stubs: {
- GlSprintf,
- GlModal,
- },
- });
- };
-
- const expectPrimaryActionStatus = (disabled = true) =>
- expect(findModal().props('actionPrimary')).toMatchObject(
- expect.objectContaining({
- attributes: [{ variant: 'danger' }, { disabled }],
- }),
- );
-
- afterEach(() => {
- wrapper.destroy();
- wrapper = null;
- });
-
- it('contains a GlModal', () => {
- mountComponent();
- expect(findModal().exists()).toBe(true);
- });
-
- describe('events', () => {
- it.each`
- glEvent | localEvent
- ${'primary'} | ${'confirmDelete'}
- ${'cancel'} | ${'cancelDelete'}
- `('GlModal $glEvent emits $localEvent', ({ glEvent, localEvent }) => {
- mountComponent();
- findModal().vm.$emit(glEvent);
- expect(wrapper.emitted(localEvent)).toEqual([[]]);
- });
- });
-
- describe('methods', () => {
- it('show calls gl-modal show', () => {
- mountComponent();
- wrapper.vm.show();
- expect(GlModal.methods.show).toHaveBeenCalled();
- });
- });
-
- describe('when we are deleting images', () => {
- it('has the correct title', () => {
- mountComponent({ deleteImage: true });
-
- expect(wrapper.text()).toContain(DELETE_IMAGE_CONFIRMATION_TITLE);
- });
-
- it('has the correct description', () => {
- mountComponent({ deleteImage: true });
-
- expect(wrapper.text()).toContain(
- DELETE_IMAGE_CONFIRMATION_TEXT.replace('%{code}', '').trim(),
- );
- });
-
- describe('delete button', () => {
- const itemsToBeDeleted = [{ project: { path: 'foo' } }];
-
- it('is disabled by default', () => {
- mountComponent({ deleteImage: true });
-
- expectPrimaryActionStatus();
- });
-
- it('if the user types something different from the project path is disabled', async () => {
- mountComponent({ deleteImage: true, itemsToBeDeleted });
-
- findInputComponent().vm.$emit('input', 'bar');
-
- await nextTick();
-
- expectPrimaryActionStatus();
- });
-
- it('if the user types the project path it is enabled', async () => {
- mountComponent({ deleteImage: true, itemsToBeDeleted });
-
- findInputComponent().vm.$emit('input', 'foo');
-
- await nextTick();
-
- expectPrimaryActionStatus(false);
- });
- });
- });
-
- describe('when we are deleting tags', () => {
- it('delete button is enabled', () => {
- mountComponent();
-
- expectPrimaryActionStatus(false);
- });
-
- describe('itemsToBeDeleted contains one element', () => {
- beforeEach(() => {
- mountComponent({ itemsToBeDeleted: [{ path: 'foo' }] });
- });
-
- it(`has the correct description`, () => {
- expect(findDescription().text()).toBe(
- REMOVE_TAG_CONFIRMATION_TEXT.replace('%{item}', 'foo'),
- );
- });
-
- it('has the correct title', () => {
- expect(wrapper.text()).toContain('Remove tag');
- });
- });
-
- describe('itemsToBeDeleted contains more than element', () => {
- beforeEach(() => {
- mountComponent({ itemsToBeDeleted: [{ path: 'foo' }, { path: 'bar' }] });
- });
-
- it(`has the correct description`, () => {
- expect(findDescription().text()).toBe(
- REMOVE_TAGS_CONFIRMATION_TEXT.replace('%{item}', '2'),
- );
- });
-
- it('has the correct title', () => {
- expect(wrapper.text()).toContain('Remove tags');
- });
- });
- });
-});