summaryrefslogtreecommitdiff
path: root/spec/frontend/releases/util_spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/releases/util_spec.js')
-rw-r--r--spec/frontend/releases/util_spec.js68
1 files changed, 44 insertions, 24 deletions
diff --git a/spec/frontend/releases/util_spec.js b/spec/frontend/releases/util_spec.js
index f40e5729188..e7b7766c0d0 100644
--- a/spec/frontend/releases/util_spec.js
+++ b/spec/frontend/releases/util_spec.js
@@ -1,6 +1,19 @@
import { cloneDeep } from 'lodash';
-import { releaseToApiJson, apiJsonToRelease, convertGraphQLResponse } from '~/releases/util';
-import { graphqlReleasesResponse as originalGraphqlReleasesResponse } from './mock_data';
+import { getJSONFixture } from 'helpers/fixtures';
+import {
+ releaseToApiJson,
+ apiJsonToRelease,
+ convertGraphQLRelease,
+ convertAllReleasesGraphQLResponse,
+ convertOneReleaseGraphQLResponse,
+} from '~/releases/util';
+
+const originalAllReleasesQueryResponse = getJSONFixture(
+ 'graphql/releases/queries/all_releases.query.graphql.json',
+);
+const originalOneReleaseQueryResponse = getJSONFixture(
+ 'graphql/releases/queries/one_release.query.graphql.json',
+);
describe('releases/util.js', () => {
describe('releaseToApiJson', () => {
@@ -103,54 +116,61 @@ describe('releases/util.js', () => {
});
});
- describe('convertGraphQLResponse', () => {
- let graphqlReleasesResponse;
- let converted;
+ describe('convertGraphQLRelease', () => {
+ let releaseFromResponse;
+ let convertedRelease;
beforeEach(() => {
- graphqlReleasesResponse = cloneDeep(originalGraphqlReleasesResponse);
- converted = convertGraphQLResponse(graphqlReleasesResponse);
- });
-
- it('matches snapshot', () => {
- expect(converted).toMatchSnapshot();
+ releaseFromResponse = cloneDeep(originalOneReleaseQueryResponse).data.project.release;
+ convertedRelease = convertGraphQLRelease(releaseFromResponse);
});
describe('assets', () => {
it("handles asset links that don't have a linkType", () => {
- expect(converted.data[0].assets.links[0].linkType).not.toBeUndefined();
+ expect(convertedRelease.assets.links[0].linkType).not.toBeUndefined();
- delete graphqlReleasesResponse.data.project.releases.nodes[0].assets.links.nodes[0]
- .linkType;
+ delete releaseFromResponse.assets.links.nodes[0].linkType;
- converted = convertGraphQLResponse(graphqlReleasesResponse);
+ convertedRelease = convertGraphQLRelease(releaseFromResponse);
- expect(converted.data[0].assets.links[0].linkType).toBeUndefined();
+ expect(convertedRelease.assets.links[0].linkType).toBeUndefined();
});
});
describe('_links', () => {
it("handles releases that don't have any links", () => {
- expect(converted.data[0]._links.selfUrl).not.toBeUndefined();
+ expect(convertedRelease._links.selfUrl).not.toBeUndefined();
- delete graphqlReleasesResponse.data.project.releases.nodes[0].links;
+ delete releaseFromResponse.links;
- converted = convertGraphQLResponse(graphqlReleasesResponse);
+ convertedRelease = convertGraphQLRelease(releaseFromResponse);
- expect(converted.data[0]._links.selfUrl).toBeUndefined();
+ expect(convertedRelease._links.selfUrl).toBeUndefined();
});
});
describe('commit', () => {
it("handles releases that don't have any commit info", () => {
- expect(converted.data[0].commit).not.toBeUndefined();
+ expect(convertedRelease.commit).not.toBeUndefined();
- delete graphqlReleasesResponse.data.project.releases.nodes[0].commit;
+ delete releaseFromResponse.commit;
- converted = convertGraphQLResponse(graphqlReleasesResponse);
+ convertedRelease = convertGraphQLRelease(releaseFromResponse);
- expect(converted.data[0].commit).toBeUndefined();
+ expect(convertedRelease.commit).toBeUndefined();
});
});
});
+
+ describe('convertAllReleasesGraphQLResponse', () => {
+ it('matches snapshot', () => {
+ expect(convertAllReleasesGraphQLResponse(originalAllReleasesQueryResponse)).toMatchSnapshot();
+ });
+ });
+
+ describe('convertOneReleaseGraphQLResponse', () => {
+ it('matches snapshot', () => {
+ expect(convertOneReleaseGraphQLResponse(originalOneReleaseQueryResponse)).toMatchSnapshot();
+ });
+ });
});