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:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-05-19 18:44:42 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-05-19 18:44:42 +0300
commit4555e1b21c365ed8303ffb7a3325d773c9b8bf31 (patch)
tree5423a1c7516cffe36384133ade12572cf709398d /spec/frontend/projects/compare/components/app_spec.js
parente570267f2f6b326480d284e0164a6464ba4081bc (diff)
Add latest changes from gitlab-org/gitlab@13-12-stable-eev13.12.0-rc42
Diffstat (limited to 'spec/frontend/projects/compare/components/app_spec.js')
-rw-r--r--spec/frontend/projects/compare/components/app_spec.js77
1 files changed, 61 insertions, 16 deletions
diff --git a/spec/frontend/projects/compare/components/app_spec.js b/spec/frontend/projects/compare/components/app_spec.js
index 6de06e4373c..7989a6f3d74 100644
--- a/spec/frontend/projects/compare/components/app_spec.js
+++ b/spec/frontend/projects/compare/components/app_spec.js
@@ -2,26 +2,19 @@ import { GlButton } from '@gitlab/ui';
import { shallowMount } from '@vue/test-utils';
import CompareApp from '~/projects/compare/components/app.vue';
import RevisionCard from '~/projects/compare/components/revision_card.vue';
+import { appDefaultProps as defaultProps } from './mock_data';
jest.mock('~/lib/utils/csrf', () => ({ token: 'mock-csrf-token' }));
-const projectCompareIndexPath = 'some/path';
-const refsProjectPath = 'some/refs/path';
-const paramsFrom = 'master';
-const paramsTo = 'master';
-
describe('CompareApp component', () => {
let wrapper;
+ const findSourceRevisionCard = () => wrapper.find('[data-testid="sourceRevisionCard"]');
+ const findTargetRevisionCard = () => wrapper.find('[data-testid="targetRevisionCard"]');
const createComponent = (props = {}) => {
wrapper = shallowMount(CompareApp, {
propsData: {
- projectCompareIndexPath,
- refsProjectPath,
- paramsFrom,
- paramsTo,
- projectMergeRequestPath: '',
- createMrPath: '',
+ ...defaultProps,
...props,
},
});
@@ -39,16 +32,16 @@ describe('CompareApp component', () => {
it('renders component with prop', () => {
expect(wrapper.props()).toEqual(
expect.objectContaining({
- projectCompareIndexPath,
- refsProjectPath,
- paramsFrom,
- paramsTo,
+ projectCompareIndexPath: defaultProps.projectCompareIndexPath,
+ refsProjectPath: defaultProps.refsProjectPath,
+ paramsFrom: defaultProps.paramsFrom,
+ paramsTo: defaultProps.paramsTo,
}),
);
});
it('contains the correct form attributes', () => {
- expect(wrapper.attributes('action')).toBe(projectCompareIndexPath);
+ expect(wrapper.attributes('action')).toBe(defaultProps.projectCompareIndexPath);
expect(wrapper.attributes('method')).toBe('POST');
});
@@ -87,6 +80,58 @@ describe('CompareApp component', () => {
});
});
+ it('sets the selected project when the "selectProject" event is emitted', async () => {
+ const project = {
+ name: 'some-to-name',
+ id: '1',
+ };
+
+ findTargetRevisionCard().vm.$emit('selectProject', {
+ direction: 'to',
+ project,
+ });
+
+ await wrapper.vm.$nextTick();
+
+ expect(findTargetRevisionCard().props('selectedProject')).toEqual(
+ expect.objectContaining(project),
+ );
+ });
+
+ it('sets the selected revision when the "selectRevision" event is emitted', async () => {
+ const revision = 'some-revision';
+
+ findTargetRevisionCard().vm.$emit('selectRevision', {
+ direction: 'to',
+ revision,
+ });
+
+ await wrapper.vm.$nextTick();
+
+ expect(findSourceRevisionCard().props('paramsBranch')).toBe(revision);
+ });
+
+ describe('swap revisions button', () => {
+ const findSwapRevisionsButton = () => wrapper.find('[data-testid="swapRevisionsButton"]');
+
+ it('renders the swap revisions button', () => {
+ expect(findSwapRevisionsButton().exists()).toBe(true);
+ });
+
+ it('has the correct text', () => {
+ expect(findSwapRevisionsButton().text()).toBe('Swap revisions');
+ });
+
+ it('swaps revisions when clicked', async () => {
+ findSwapRevisionsButton().vm.$emit('click');
+
+ await wrapper.vm.$nextTick();
+
+ expect(findTargetRevisionCard().props('paramsBranch')).toBe(defaultProps.paramsTo);
+ expect(findSourceRevisionCard().props('paramsBranch')).toBe(defaultProps.paramsFrom);
+ });
+ });
+
describe('merge request buttons', () => {
const findProjectMrButton = () => wrapper.find('[data-testid="projectMrButton"]');
const findCreateMrButton = () => wrapper.find('[data-testid="createMrButton"]');