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/releases/stores/modules/detail/getters_spec.js')
-rw-r--r--spec/frontend/releases/stores/modules/detail/getters_spec.js85
1 files changed, 66 insertions, 19 deletions
diff --git a/spec/frontend/releases/stores/modules/detail/getters_spec.js b/spec/frontend/releases/stores/modules/detail/getters_spec.js
index 8945ad97c93..2d9f35428f2 100644
--- a/spec/frontend/releases/stores/modules/detail/getters_spec.js
+++ b/spec/frontend/releases/stores/modules/detail/getters_spec.js
@@ -1,6 +1,20 @@
import * as getters from '~/releases/stores/modules/detail/getters';
describe('Release detail getters', () => {
+ describe('isExistingRelease', () => {
+ it('returns true if the release is an existing release that already exists in the database', () => {
+ const state = { tagName: 'test-tag-name' };
+
+ expect(getters.isExistingRelease(state)).toBe(true);
+ });
+
+ it('returns false if the release is a new release that has not yet been saved to the database', () => {
+ const state = { tagName: null };
+
+ expect(getters.isExistingRelease(state)).toBe(false);
+ });
+ });
+
describe('releaseLinksToCreate', () => {
it("returns an empty array if state.release doesn't exist", () => {
const state = {};
@@ -62,6 +76,7 @@ describe('Release detail getters', () => {
it('returns no validation errors', () => {
const state = {
release: {
+ tagName: 'test-tag-name',
assets: {
links: [
{ id: 1, url: 'https://example.com/valid', name: 'Link 1' },
@@ -96,6 +111,9 @@ describe('Release detail getters', () => {
beforeEach(() => {
const state = {
release: {
+ // empty tag name
+ tagName: '',
+
assets: {
links: [
// Duplicate URLs
@@ -124,7 +142,15 @@ describe('Release detail getters', () => {
actualErrors = getters.validationErrors(state);
});
- it('returns a validation errors if links share a URL', () => {
+ it('returns a validation error if the tag name is empty', () => {
+ const expectedErrors = {
+ isTagNameEmpty: true,
+ };
+
+ expect(actualErrors).toMatchObject(expectedErrors);
+ });
+
+ it('returns a validation error if links share a URL', () => {
const expectedErrors = {
assets: {
links: {
@@ -182,32 +208,53 @@ describe('Release detail getters', () => {
// the value of state is not actually used by this getter
const state = {};
- it('returns true when the form is valid', () => {
- const mockGetters = {
- validationErrors: {
- assets: {
- links: {
- 1: {},
+ describe('when the form is valid', () => {
+ it('returns true', () => {
+ const mockGetters = {
+ validationErrors: {
+ assets: {
+ links: {
+ 1: {},
+ },
},
},
- },
- };
+ };
- expect(getters.isValid(state, mockGetters)).toBe(true);
+ expect(getters.isValid(state, mockGetters)).toBe(true);
+ });
});
- it('returns false when the form is invalid', () => {
- const mockGetters = {
- validationErrors: {
- assets: {
- links: {
- 1: { isNameEmpty: true },
+ describe('when an asset link contains a validation error', () => {
+ it('returns false', () => {
+ const mockGetters = {
+ validationErrors: {
+ assets: {
+ links: {
+ 1: { isNameEmpty: true },
+ },
},
},
- },
- };
+ };
- expect(getters.isValid(state, mockGetters)).toBe(false);
+ expect(getters.isValid(state, mockGetters)).toBe(false);
+ });
+ });
+
+ describe('when the tag name is empty', () => {
+ it('returns false', () => {
+ const mockGetters = {
+ validationErrors: {
+ isTagNameEmpty: true,
+ assets: {
+ links: {
+ 1: {},
+ },
+ },
+ },
+ };
+
+ expect(getters.isValid(state, mockGetters)).toBe(false);
+ });
});
});
});