From 1f25fe0683e723b6441a214ba6c5170c7c2d895f Mon Sep 17 00:00:00 2001 From: Andrew Lisowski Date: Thu, 11 Mar 2021 15:10:23 -0800 Subject: [PATCH] fix PR label calculation --- .../src/__tests__/auto-canary-local.test.ts | 32 +++++++++++++++++++ packages/core/src/auto.ts | 2 +- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/packages/core/src/__tests__/auto-canary-local.test.ts b/packages/core/src/__tests__/auto-canary-local.test.ts index d97d03424..037486e9f 100644 --- a/packages/core/src/__tests__/auto-canary-local.test.ts +++ b/packages/core/src/__tests__/auto-canary-local.test.ts @@ -11,6 +11,8 @@ const defaults = { repo: "bar", }; +const listLabelsOnIssue = jest.fn(); + process.env.GH_TOKEN = "XXXX"; jest.mock("@octokit/rest", () => { @@ -23,6 +25,10 @@ jest.mock("@octokit/rest", () => { get: jest.fn().mockReturnValue({}), }; + issues = { + listLabelsOnIssue: listLabelsOnIssue.mockReturnValue({ data: []}), + }; + hook = { error: () => undefined, }; @@ -54,3 +60,29 @@ test("shipit should publish canary in locally when not on baseBranch", async () }) ); }); + +test("canary should use PR labels correctly", async () => { + const auto = new Auto({ + ...defaults, + onlyPublishWithReleaseLabel: true, + plugins: [], + }); + auto.logger = dummyLog(); + // @ts-ignore + auto.checkClean = () => Promise.resolve(true); + await auto.loadConfig(); + + auto.git!.getLatestRelease = () => Promise.resolve("1.2.3"); + auto.git!.getSha = () => Promise.resolve("abcdefghijklmnop"); + jest.spyOn(auto.git!, "createComment").mockImplementation(); + auto.release!.getCommitsInRelease = () => Promise.resolve([]); + auto.release!.getCommits = () => Promise.resolve([]); + const canary = jest.fn(); + auto.hooks.canary.tap("test", canary); + listLabelsOnIssue.mockReturnValueOnce({ + data: [{ name: "internal" }, { name: "release" }], + }); + + await auto.canary({ pr: 123 }); + expect(canary).toHaveBeenCalled(); +}); diff --git a/packages/core/src/auto.ts b/packages/core/src/auto.ts index bedc4ca3d..442d61599 100644 --- a/packages/core/src/auto.ts +++ b/packages/core/src/auto.ts @@ -1224,7 +1224,7 @@ export default class Auto { if (pr) { const prLabels = await this.git.getLabels(Number(pr)); - labels.push(prLabels); + labels.unshift(prLabels); } let bump = calculateSemVerBump(labels, this.semVerLabels!, this.config);