diff options
Diffstat (limited to 'spec/frontend/pipelines/utils_spec.js')
-rw-r--r-- | spec/frontend/pipelines/utils_spec.js | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/spec/frontend/pipelines/utils_spec.js b/spec/frontend/pipelines/utils_spec.js index 1c23a7e4fcf..51e0e0705ff 100644 --- a/spec/frontend/pipelines/utils_spec.js +++ b/spec/frontend/pipelines/utils_spec.js @@ -3,6 +3,7 @@ import { makeLinksFromNodes, filterByAncestors, generateColumnsFromLayersListBare, + keepLatestDownstreamPipelines, listByLayers, parseData, removeOrphanNodes, @@ -10,6 +11,8 @@ import { } from '~/pipelines/components/parsing_utils'; import { createNodeDict } from '~/pipelines/utils'; +import { mockDownstreamPipelinesRest } from '../vue_merge_request_widget/mock_data'; +import { mockDownstreamPipelinesGraphql } from '../commit/mock_data'; import { mockParsedGraphQLNodes, missingJob } from './components/dag/mock_data'; import { generateResponse, mockPipelineResponse } from './graph/mock_data'; @@ -159,3 +162,37 @@ describe('DAG visualization parsing utilities', () => { }); }); }); + +describe('linked pipeline utilities', () => { + describe('keepLatestDownstreamPipelines', () => { + it('filters data from GraphQL', () => { + const downstream = mockDownstreamPipelinesGraphql().nodes; + const latestDownstream = keepLatestDownstreamPipelines(downstream); + + expect(downstream).toHaveLength(3); + expect(latestDownstream).toHaveLength(1); + }); + + it('filters data from REST', () => { + const downstream = mockDownstreamPipelinesRest(); + const latestDownstream = keepLatestDownstreamPipelines(downstream); + + expect(downstream).toHaveLength(2); + expect(latestDownstream).toHaveLength(1); + }); + + it('returns downstream pipelines if sourceJob.retried is null', () => { + const downstream = mockDownstreamPipelinesGraphql({ includeSourceJobRetried: false }).nodes; + const latestDownstream = keepLatestDownstreamPipelines(downstream); + + expect(latestDownstream).toHaveLength(downstream.length); + }); + + it('returns downstream pipelines if source_job.retried is null', () => { + const downstream = mockDownstreamPipelinesRest({ includeSourceJobRetried: false }); + const latestDownstream = keepLatestDownstreamPipelines(downstream); + + expect(latestDownstream).toHaveLength(downstream.length); + }); + }); +}); |