Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/feature_flags/components/feature_flags_tab_spec.js')
-rw-r--r--spec/frontend/feature_flags/components/feature_flags_tab_spec.js167
1 files changed, 0 insertions, 167 deletions
diff --git a/spec/frontend/feature_flags/components/feature_flags_tab_spec.js b/spec/frontend/feature_flags/components/feature_flags_tab_spec.js
deleted file mode 100644
index c2170e8a768..00000000000
--- a/spec/frontend/feature_flags/components/feature_flags_tab_spec.js
+++ /dev/null
@@ -1,167 +0,0 @@
-import { GlAlert, GlBadge, GlEmptyState, GlLink, GlLoadingIcon, GlTabs } from '@gitlab/ui';
-import { mount } from '@vue/test-utils';
-import FeatureFlagsTab from '~/feature_flags/components/feature_flags_tab.vue';
-
-const DEFAULT_PROPS = {
- title: 'test',
- count: 5,
- alerts: ['an alert', 'another alert'],
- isLoading: false,
- loadingLabel: 'test loading',
- errorState: false,
- errorTitle: 'test title',
- emptyState: true,
- emptyTitle: 'test empty',
- emptyDescription: 'empty description',
-};
-
-const DEFAULT_PROVIDE = {
- errorStateSvgPath: '/error.svg',
- featureFlagsHelpPagePath: '/help/page/path',
-};
-
-describe('feature_flags/components/feature_flags_tab.vue', () => {
- let wrapper;
-
- const factory = (props = {}) =>
- mount(
- {
- components: {
- GlTabs,
- FeatureFlagsTab,
- },
- render(h) {
- return h(GlTabs, [
- h(FeatureFlagsTab, { props: this.$attrs, on: this.$listeners }, this.$slots.default),
- ]);
- },
- },
- {
- propsData: {
- ...DEFAULT_PROPS,
- ...props,
- },
- provide: DEFAULT_PROVIDE,
- slots: {
- default: '<p data-testid="test-slot">testing</p>',
- },
- },
- );
-
- afterEach(() => {
- if (wrapper?.destroy) {
- wrapper.destroy();
- }
-
- wrapper = null;
- });
-
- describe('alerts', () => {
- let alerts;
-
- beforeEach(() => {
- wrapper = factory();
- alerts = wrapper.findAll(GlAlert);
- });
-
- it('should show any alerts', () => {
- expect(alerts).toHaveLength(DEFAULT_PROPS.alerts.length);
- alerts.wrappers.forEach((alert, i) => expect(alert.text()).toBe(DEFAULT_PROPS.alerts[i]));
- });
-
- it('should emit a dismiss event for a dismissed alert', () => {
- alerts.at(0).vm.$emit('dismiss');
-
- expect(wrapper.find(FeatureFlagsTab).emitted('dismissAlert')).toEqual([[0]]);
- });
- });
-
- describe('loading', () => {
- beforeEach(() => {
- wrapper = factory({ isLoading: true });
- });
-
- it('should show a loading icon and nothing else', () => {
- expect(wrapper.find(GlLoadingIcon).exists()).toBe(true);
- expect(wrapper.findAll(GlEmptyState)).toHaveLength(0);
- });
- });
-
- describe('error', () => {
- let emptyState;
-
- beforeEach(() => {
- wrapper = factory({ errorState: true });
- emptyState = wrapper.find(GlEmptyState);
- });
-
- it('should show an error state if there has been an error', () => {
- expect(emptyState.text()).toContain(DEFAULT_PROPS.errorTitle);
- expect(emptyState.text()).toContain(
- 'Try again in a few moments or contact your support team.',
- );
- expect(emptyState.props('svgPath')).toBe(DEFAULT_PROVIDE.errorStateSvgPath);
- });
- });
-
- describe('empty', () => {
- let emptyState;
- let emptyStateLink;
-
- beforeEach(() => {
- wrapper = factory({ emptyState: true });
- emptyState = wrapper.find(GlEmptyState);
- emptyStateLink = emptyState.find(GlLink);
- });
-
- it('should show an empty state if it is empty', () => {
- expect(emptyState.text()).toContain(DEFAULT_PROPS.emptyTitle);
- expect(emptyState.text()).toContain(DEFAULT_PROPS.emptyDescription);
- expect(emptyState.props('svgPath')).toBe(DEFAULT_PROVIDE.errorStateSvgPath);
- expect(emptyStateLink.attributes('href')).toBe(DEFAULT_PROVIDE.featureFlagsHelpPagePath);
- expect(emptyStateLink.text()).toBe('More information');
- });
- });
-
- describe('slot', () => {
- let slot;
-
- beforeEach(async () => {
- wrapper = factory();
- await wrapper.vm.$nextTick();
-
- slot = wrapper.find('[data-testid="test-slot"]');
- });
-
- it('should display the passed slot', () => {
- expect(slot.exists()).toBe(true);
- expect(slot.text()).toBe('testing');
- });
- });
-
- describe('count', () => {
- it('should display a count if there is one', async () => {
- wrapper = factory();
- await wrapper.vm.$nextTick();
-
- expect(wrapper.find(GlBadge).text()).toBe(DEFAULT_PROPS.count.toString());
- });
- it('should display 0 if there is no count', async () => {
- wrapper = factory({ count: undefined });
- await wrapper.vm.$nextTick();
-
- expect(wrapper.find(GlBadge).text()).toBe('0');
- });
- });
-
- describe('title', () => {
- it('should show the title', async () => {
- wrapper = factory();
- await wrapper.vm.$nextTick();
-
- expect(wrapper.find('[data-testid="feature-flags-tab-title"]').text()).toBe(
- DEFAULT_PROPS.title,
- );
- });
- });
-});