83 lines
2.5 KiB
JavaScript
83 lines
2.5 KiB
JavaScript
import { shallowMount } from '@vue/test-utils';
|
|
import { pipelines } from 'test_fixtures/pipelines/pipelines.json';
|
|
import PipelineMiniGraph from '~/pipelines/components/pipelines_list/pipeline_mini_graph.vue';
|
|
import PipelineStage from '~/pipelines/components/pipelines_list/pipeline_stage.vue';
|
|
|
|
const mockStages = pipelines[0].details.stages;
|
|
|
|
describe('Pipeline Mini Graph', () => {
|
|
let wrapper;
|
|
|
|
const findPipelineStages = () => wrapper.findAll(PipelineStage);
|
|
const findPipelineStagesAt = (i) => findPipelineStages().at(i);
|
|
|
|
const createComponent = (props = {}) => {
|
|
wrapper = shallowMount(PipelineMiniGraph, {
|
|
propsData: {
|
|
stages: mockStages,
|
|
...props,
|
|
},
|
|
});
|
|
};
|
|
|
|
it('renders stages', () => {
|
|
createComponent();
|
|
|
|
expect(findPipelineStages()).toHaveLength(mockStages.length);
|
|
});
|
|
|
|
it('renders stages with a custom class', () => {
|
|
createComponent({ stagesClass: 'my-class' });
|
|
|
|
expect(wrapper.findAll('.my-class')).toHaveLength(mockStages.length);
|
|
});
|
|
|
|
it('does not fail when stages are empty', () => {
|
|
createComponent({ stages: [] });
|
|
|
|
expect(wrapper.exists()).toBe(true);
|
|
expect(findPipelineStages()).toHaveLength(0);
|
|
});
|
|
|
|
it('triggers events in "action request complete" in stages', () => {
|
|
createComponent();
|
|
|
|
findPipelineStagesAt(0).vm.$emit('pipelineActionRequestComplete');
|
|
findPipelineStagesAt(1).vm.$emit('pipelineActionRequestComplete');
|
|
|
|
expect(wrapper.emitted('pipelineActionRequestComplete')).toHaveLength(2);
|
|
});
|
|
|
|
it('update dropdown is false by default', () => {
|
|
createComponent();
|
|
|
|
expect(findPipelineStagesAt(0).props('updateDropdown')).toBe(false);
|
|
expect(findPipelineStagesAt(1).props('updateDropdown')).toBe(false);
|
|
});
|
|
|
|
it('update dropdown is set to true', () => {
|
|
createComponent({ updateDropdown: true });
|
|
|
|
expect(findPipelineStagesAt(0).props('updateDropdown')).toBe(true);
|
|
expect(findPipelineStagesAt(1).props('updateDropdown')).toBe(true);
|
|
});
|
|
|
|
it('is merge train is false by default', () => {
|
|
createComponent();
|
|
|
|
expect(findPipelineStagesAt(0).props('isMergeTrain')).toBe(false);
|
|
expect(findPipelineStagesAt(1).props('isMergeTrain')).toBe(false);
|
|
});
|
|
|
|
it('is merge train is set to true', () => {
|
|
createComponent({ isMergeTrain: true });
|
|
|
|
expect(findPipelineStagesAt(0).props('isMergeTrain')).toBe(true);
|
|
expect(findPipelineStagesAt(1).props('isMergeTrain')).toBe(true);
|
|
});
|
|
|
|
afterEach(() => {
|
|
wrapper.destroy();
|
|
wrapper = null;
|
|
});
|
|
});
|