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>2020-04-10 00:09:19 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-04-10 00:09:19 +0300
commit254ec28f5448f6f353cd98f637985de3d1405854 (patch)
tree1c84ed7b7dd32db96454af034cd6c7e90699e76d /spec/frontend/diffs/store
parent141902c04943d5fb43c014b8cf42af60a3bc0cdf (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend/diffs/store')
-rw-r--r--spec/frontend/diffs/store/getters_versions_dropdowns_spec.js100
1 files changed, 100 insertions, 0 deletions
diff --git a/spec/frontend/diffs/store/getters_versions_dropdowns_spec.js b/spec/frontend/diffs/store/getters_versions_dropdowns_spec.js
new file mode 100644
index 00000000000..3e5ba66d5e4
--- /dev/null
+++ b/spec/frontend/diffs/store/getters_versions_dropdowns_spec.js
@@ -0,0 +1,100 @@
+import * as getters from '~/diffs/store/getters';
+import state from '~/diffs/store/modules/diff_state';
+import { DIFF_COMPARE_BASE_VERSION_INDEX } from '~/diffs/constants';
+import diffsMockData from '../mock_data/merge_request_diffs';
+
+describe('Compare diff version dropdowns', () => {
+ let localState;
+
+ beforeEach(() => {
+ localState = state();
+ localState.mergeRequestDiff = {
+ base_version_path: 'basePath',
+ head_version_path: 'headPath',
+ version_index: 1,
+ };
+ localState.targetBranchName = 'baseVersion';
+ localState.mergeRequestDiffs = diffsMockData;
+ });
+
+ describe('selectedTargetIndex', () => {
+ it('without startVersion', () => {
+ expect(getters.selectedTargetIndex(localState)).toEqual(DIFF_COMPARE_BASE_VERSION_INDEX);
+ });
+
+ it('with startVersion', () => {
+ const startVersion = { version_index: 1 };
+ localState.startVersion = startVersion;
+ expect(getters.selectedTargetIndex(localState)).toEqual(startVersion.version_index);
+ });
+ });
+
+ it('selectedSourceIndex', () => {
+ expect(getters.selectedSourceIndex(localState)).toEqual(
+ localState.mergeRequestDiff.version_index,
+ );
+ });
+
+ describe('diffCompareDropdownTargetVersions', () => {
+ // diffCompareDropdownTargetVersions slices the array at the first position
+ // and appends a "base" version which is why we use diffsMockData[1] below
+ // This is to display "base" at the end of the target dropdown
+ const expectedFirstVersion = {
+ ...diffsMockData[1],
+ href: expect.any(String),
+ versionName: expect.any(String),
+ };
+
+ const expectedBaseVersion = {
+ versionName: 'baseVersion',
+ version_index: DIFF_COMPARE_BASE_VERSION_INDEX,
+ href: 'basePath',
+ isBase: true,
+ };
+
+ it('base version selected', () => {
+ expectedFirstVersion.selected = false;
+ expectedBaseVersion.selected = true;
+
+ const targetVersions = getters.diffCompareDropdownTargetVersions(localState, {
+ selectedTargetIndex: DIFF_COMPARE_BASE_VERSION_INDEX,
+ });
+
+ const lastVersion = targetVersions[targetVersions.length - 1];
+ expect(targetVersions[0]).toEqual(expectedFirstVersion);
+ expect(lastVersion).toEqual(expectedBaseVersion);
+ });
+
+ it('first version selected', () => {
+ expectedFirstVersion.selected = true;
+ expectedBaseVersion.selected = false;
+
+ localState.startVersion = expectedFirstVersion;
+
+ const targetVersions = getters.diffCompareDropdownTargetVersions(localState, {
+ selectedTargetIndex: expectedFirstVersion.version_index,
+ });
+
+ const lastVersion = targetVersions[targetVersions.length - 1];
+ expect(targetVersions[0]).toEqual(expectedFirstVersion);
+ expect(lastVersion).toEqual(expectedBaseVersion);
+ });
+ });
+
+ it('diffCompareDropdownSourceVersions', () => {
+ const firstDiff = localState.mergeRequestDiffs[0];
+ const expectedShape = {
+ ...firstDiff,
+ href: firstDiff.version_path,
+ commitsText: `${firstDiff.commits_count} commits,`,
+ versionName: 'latest version',
+ selected: true,
+ };
+
+ const sourceVersions = getters.diffCompareDropdownSourceVersions(localState, {
+ selectedSourceIndex: expectedShape.version_index,
+ });
+ expect(sourceVersions[0]).toEqual(expectedShape);
+ expect(sourceVersions[1].selected).toBe(false);
+ });
+});