From 8374ef6caa4a07f11da3cb2013bc8874b4a3f136 Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@keylocation.sg> Date: Tue, 1 Aug 2017 06:58:13 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20Allow=20=E2=80=98@user=E2=80=99=20format?= =?UTF-8?q?=20for=20assignees=20and=20reviewers=20(#567)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Usernames can now be expressed as like either ‘rarkins’ or ‘@rarkins’ --- lib/workers/pr/index.js | 16 +++++++++++-- .../pr/__snapshots__/index.spec.js.snap | 24 +++++++++++++++++++ test/workers/pr/index.spec.js | 6 +++-- 3 files changed, 42 insertions(+), 4 deletions(-) diff --git a/lib/workers/pr/index.js b/lib/workers/pr/index.js index 6cd6ffafcd..aed3992062 100644 --- a/lib/workers/pr/index.js +++ b/lib/workers/pr/index.js @@ -143,10 +143,22 @@ async function ensurePr(inputConfig, logger, errors, warnings) { ); } else { if (config.assignees.length > 0) { - await config.api.addAssignees(pr.number, config.assignees); + const assignees = config.assignees.map( + assignee => + assignee.length && assignee[0] === '@' + ? assignee.slice(1) + : assignee + ); + await config.api.addAssignees(pr.number, assignees); } if (config.reviewers.length > 0) { - await config.api.addReviewers(pr.number, config.reviewers); + const reviewers = config.reviewers.map( + reviewer => + reviewer.length && reviewer[0] === '@' + ? reviewer.slice(1) + : reviewer + ); + await config.api.addReviewers(pr.number, reviewers); } } logger.info(`Created ${pr.displayNumber}`); diff --git a/test/workers/pr/__snapshots__/index.spec.js.snap b/test/workers/pr/__snapshots__/index.spec.js.snap index c1af747f56..347b9e6eca 100644 --- a/test/workers/pr/__snapshots__/index.spec.js.snap +++ b/test/workers/pr/__snapshots__/index.spec.js.snap @@ -1,3 +1,27 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`workers/pr ensurePr(upgrades, logger) should add assignees and reviewers to new PR 1`] = ` +Array [ + Array [ + undefined, + Array [ + "foo", + "bar", + ], + ], +] +`; + +exports[`workers/pr ensurePr(upgrades, logger) should add assignees and reviewers to new PR 2`] = ` +Array [ + Array [ + undefined, + Array [ + "baz", + "boo", + ], + ], +] +`; + exports[`workers/pr ensurePr(upgrades, logger) should return unmodified existing PR 1`] = `Array []`; diff --git a/test/workers/pr/index.spec.js b/test/workers/pr/index.spec.js index 7d4b5adf17..cc21b7656c 100644 --- a/test/workers/pr/index.spec.js +++ b/test/workers/pr/index.spec.js @@ -166,12 +166,14 @@ describe('workers/pr', () => { config.api.getBranchPr = jest.fn(); config.api.addAssignees = jest.fn(); config.api.addReviewers = jest.fn(); - config.assignees = ['bar']; - config.reviewers = ['baz']; + config.assignees = ['@foo', 'bar']; + config.reviewers = ['baz', '@boo']; const pr = await prWorker.ensurePr(config, logger); expect(pr).toMatchObject({ displayNumber: 'New Pull Request' }); expect(config.api.addAssignees.mock.calls.length).toBe(1); + expect(config.api.addAssignees.mock.calls).toMatchSnapshot(); expect(config.api.addReviewers.mock.calls.length).toBe(1); + expect(config.api.addReviewers.mock.calls).toMatchSnapshot(); }); it('should display errors and warnings', async () => { config.api.getBranchPr = jest.fn(); -- GitLab