From 9a023b40883d5eb825a36c540c57f71713a670c0 Mon Sep 17 00:00:00 2001 From: Pierre Vanduynslager Date: Mon, 17 Dec 2018 14:52:22 -0500 Subject: [PATCH] fix: call `success` plugin only once for releases added to a channel --- index.js | 5 +++-- test/index.test.js | 8 ++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/index.js b/index.js index 1b426acf6f..ff16524548 100644 --- a/index.js +++ b/index.js @@ -178,9 +178,10 @@ async function run(context, plugins) { logger.success(`Created tag ${nextRelease.gitTag}`); } - context.releases.push(...(await plugins.publish(context))); + const releases = await plugins.publish(context); + context.releases.push(...releases); - await plugins.success(context); + await plugins.success({...context, releases}); logger.success(`Published release ${nextRelease.version}`); diff --git a/test/index.test.js b/test/index.test.js index 0afdfe5392..6984331eac 100644 --- a/test/index.test.js +++ b/test/index.test.js @@ -342,14 +342,14 @@ test('Plugins are called with expected values', async t => { t.deepEqual(success.args[1][0], config); t.deepEqual(success.args[1][1].options, options); - t.deepEqual(success.args[0][1].branch, branch); - t.deepEqual(success.args[0][1].branches, branches); + t.deepEqual(success.args[1][1].branch, branch); + t.deepEqual(success.args[1][1].branches, branches); t.deepEqual(success.args[1][1].logger, t.context.logger); t.deepEqual(success.args[1][1].lastRelease, lastRelease); t.deepEqual(success.args[1][1].commits[0].hash, commits[0].hash); t.deepEqual(success.args[1][1].commits[0].message, commits[0].message); t.deepEqual(success.args[1][1].nextRelease, {...nextRelease, notes: `${notes1}\n\n${notes2}\n\n${notes3}`}); - t.deepEqual(success.args[1][1].releases, releases); + t.deepEqual(success.args[1][1].releases, [releases[1], releases[2]]); t.deepEqual(result, { lastRelease, @@ -1203,7 +1203,7 @@ test('Accept "undefined" value returned by "generateNotes" and "false" by "publi t.is(success.callCount, 2); t.deepEqual(publish.args[0][1].nextRelease, {...nextRelease, notes: notes2}); t.deepEqual(success.args[0][1].releases, [{pluginName: '[Function: proxy]'}]); - t.deepEqual(success.args[1][1].releases, [{pluginName: '[Function: proxy]'}, {pluginName: '[Function: proxy]'}]); + t.deepEqual(success.args[1][1].releases, [{pluginName: '[Function: proxy]'}]); }); test('Returns false if triggered by a PR', async t => {