Skip to content

Commit

Permalink
fix(1968): remove ~ for downstream external job (#31)
Browse files Browse the repository at this point in the history
  • Loading branch information
klu909 committed Feb 27, 2020
1 parent 171dde0 commit 9eb76a2
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 7 deletions.
4 changes: 2 additions & 2 deletions lib/getWorkflow.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ const filterNodeName = name =>
*/
const buildExternalNodes = async (children, nodes, triggerFactory) => {
await Promise.all(children.map(async (dest) => {
nodes.add(dest);
nodes.add(dest.replace('~sd@', 'sd@'));

const newChildren = await triggerFactory.getDestFromSrc(dest);

Expand Down Expand Up @@ -89,7 +89,7 @@ const calculateNodes = async (jobs, triggerFactory, pipelineId) => {
*/
const buildExternalEdges = async (root, children, edges, triggerFactory) => {
await Promise.all(children.map(async (dest) => {
edges.push({ src: root, dest });
edges.push({ src: root, dest: dest.replace('~sd@', 'sd@') });

const newChildren = await triggerFactory.getDestFromSrc(dest);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@
{ "src": "~pr", "dest": "main" },
{ "src": "~commit", "dest": "main" },
{ "src": "main", "dest": "foo" },
{ "src": "foo", "dest": "sd@111:baz" },
{ "src": "foo", "dest": "sd@1234:foo" },
{ "src": "sd@111:baz", "dest": "bar", "join": true },
{ "src": "sd@1234:foo", "dest": "bar", "join": true },
{ "src": "sd@111:baz", "dest": "bar", "join": true }
{ "src": "foo", "dest": "sd@111:baz" },
{ "src": "foo", "dest": "sd@1234:foo" }
]
}
}
2 changes: 1 addition & 1 deletion test/lib/getNextJobs.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ const getNextJobs = require('../../lib/getNextJobs');
const WORKFLOW = require('../data/expected-output');
const EXTERNAL_WORKFLOW = require('../data/expected-external');
const EXTERNAL_COMPLEX_WORKFLOW = require('../data/expected-external-complex');
const EXTERNAL_JOIN_WORKFLOW = require('../data/external-join');
const EXTERNAL_JOIN_WORKFLOW = require('../data/expected-external-join');

describe('getNextJobs', () => {
it('should throw if trigger not provided', () => {
Expand Down
17 changes: 17 additions & 0 deletions test/lib/getWorkflow.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ const EXPECTED_OUTPUT = require('../data/expected-output');
const NO_EDGES = Object.assign({}, EXPECTED_OUTPUT);
const EXPECTED_EXTERNAL = require('../data/expected-external');
const EXPECTED_EXTERNAL_COMPLEX = require('../data/expected-external-complex');
const EXPECTED_EXTERNAL_JOIN = require('../data/expected-external-join');

NO_EDGES.edges = [];

Expand Down Expand Up @@ -170,6 +171,22 @@ describe('getWorkflow', () => {
});
});

it('should remove ~ for downstream external trigger', async () => {
triggerFactoryMock.getDestFromSrc.withArgs('sd@123:foo').resolves([
'sd@111:baz',
'sd@1234:foo'
]);
const result = await getWorkflow({
jobs: {
main: { requires: ['~pr', '~commit'] },
foo: { requires: ['main'] },
bar: { requires: ['sd@111:baz', 'sd@1234:foo'] }
}
}, triggerFactoryMock, 123);

assert.deepEqual(result, EXPECTED_EXTERNAL_JOIN);
});

it('should handle external upstream & downstream join', async () => {
/* A - B - C
\ sd@111:external-level1 -> sd@222:external-level2 /
Expand Down

0 comments on commit 9eb76a2

Please sign in to comment.