62 lines
1.8 KiB
JavaScript
62 lines
1.8 KiB
JavaScript
import { shallowMount } from '@vue/test-utils';
|
|
import { GlAlert, GlSprintf, GlLink } from '@gitlab/ui';
|
|
import component from '~/registry/explorer/pages/index.vue';
|
|
import store from '~/registry/explorer/stores/';
|
|
|
|
describe('List Page', () => {
|
|
let wrapper;
|
|
let dispatchSpy;
|
|
|
|
const findRouterView = () => wrapper.find({ ref: 'router-view' });
|
|
const findAlert = () => wrapper.find(GlAlert);
|
|
const findLink = () => wrapper.find(GlLink);
|
|
|
|
const mountComponent = () => {
|
|
wrapper = shallowMount(component, {
|
|
store,
|
|
stubs: {
|
|
RouterView: true,
|
|
GlSprintf,
|
|
},
|
|
});
|
|
};
|
|
|
|
beforeEach(() => {
|
|
dispatchSpy = jest.spyOn(store, 'dispatch');
|
|
mountComponent();
|
|
});
|
|
|
|
it('has a router view', () => {
|
|
expect(findRouterView().exists()).toBe(true);
|
|
});
|
|
|
|
describe('garbageCollectionTip alert', () => {
|
|
beforeEach(() => {
|
|
store.dispatch('setInitialState', { isAdmin: true, garbageCollectionHelpPagePath: 'foo' });
|
|
store.dispatch('setShowGarbageCollectionTip', true);
|
|
});
|
|
|
|
afterEach(() => {
|
|
store.dispatch('setInitialState', {});
|
|
store.dispatch('setShowGarbageCollectionTip', false);
|
|
});
|
|
|
|
it('is visible when the user is an admin and the user performed a delete action', () => {
|
|
expect(findAlert().exists()).toBe(true);
|
|
});
|
|
|
|
it('on dismiss disappears ', () => {
|
|
findAlert().vm.$emit('dismiss');
|
|
expect(dispatchSpy).toHaveBeenCalledWith('setShowGarbageCollectionTip', false);
|
|
return wrapper.vm.$nextTick().then(() => {
|
|
expect(findAlert().exists()).toBe(false);
|
|
});
|
|
});
|
|
|
|
it('contains a link to the docs', () => {
|
|
const link = findLink();
|
|
expect(link.exists()).toBe(true);
|
|
expect(link.attributes('href')).toBe(store.state.config.garbageCollectionHelpPagePath);
|
|
});
|
|
});
|
|
});
|