diff --git a/CHANGELOG.md b/CHANGELOG.md index 63c049f98..40e860b7b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,8 @@ +- Bitbucket Cloud: Fix bug when Danger updating inline comment with summary comment. - [@hellocore] + # 10.4.2 diff --git a/source/platforms/BitBucketCloud.ts b/source/platforms/BitBucketCloud.ts index 9bdec0659..c74c9cac7 100644 --- a/source/platforms/BitBucketCloud.ts +++ b/source/platforms/BitBucketCloud.ts @@ -82,7 +82,7 @@ export class BitBucketCloud implements Platform { * @returns {Promise} did it work? */ deleteMainComment = async (dangerID: string): Promise => { - const comments = await this.api.getDangerComments(dangerID) + const comments = await this.api.getDangerMainComments(dangerID) for (let comment of comments) { await this.api.deleteComment(comment.id.toString()) } @@ -98,7 +98,7 @@ export class BitBucketCloud implements Platform { * @returns {Promise} the URL for the comment */ async updateOrCreateComment(dangerID: string, newComment: string): Promise { - const comments = await this.api.getDangerComments(dangerID) + const comments = await this.api.getDangerMainComments(dangerID) let issue = null if (comments.length) { diff --git a/source/platforms/bitbucket_cloud/BitBucketCloudAPI.ts b/source/platforms/bitbucket_cloud/BitBucketCloudAPI.ts index abf2cc94c..603f5f7ac 100644 --- a/source/platforms/bitbucket_cloud/BitBucketCloudAPI.ts +++ b/source/platforms/bitbucket_cloud/BitBucketCloudAPI.ts @@ -214,11 +214,12 @@ export class BitBucketCloudAPI { return await res.text() } - getDangerComments = async (dangerID: string): Promise => { + getDangerMainComments = async (dangerID: string): Promise => { const comments = await this.getPullRequestComments() const dangerIDMessage = dangerIDToString(dangerID) return comments + .filter(comment => comment.inline == null) .filter(comment => comment.content.raw.includes(dangerIDMessage)) .filter(comment => comment.user.uuid === this.uuid) } diff --git a/source/platforms/bitbucket_cloud/_tests_/_bitbucket_cloud_api.test.ts b/source/platforms/bitbucket_cloud/_tests_/_bitbucket_cloud_api.test.ts index 1625b692e..b9846c003 100644 --- a/source/platforms/bitbucket_cloud/_tests_/_bitbucket_cloud_api.test.ts +++ b/source/platforms/bitbucket_cloud/_tests_/_bitbucket_cloud_api.test.ts @@ -149,6 +149,24 @@ describe("API testing - BitBucket Cloud", () => { display_name: "name", }, }, + { + content: { + raw: `FAIL! danger-id-1; ${dangerSignaturePostfix({} as DangerResults, "1234")}`, + }, + user: { + display_name: "name", + uuid: "{1234-1234-1234-1234}", + }, + }, + { + content: { + raw: "not a danger comment", + }, + user: { + display_name: "someone", + uuid: "{1234-1234-1234-1235}", + }, + }, ], }) const comments = await api.getDangerInlineComments("1") @@ -173,7 +191,7 @@ describe("API testing - BitBucket Cloud", () => { expect(result).toEqual(["activity"]) }) - it("getDangerComments", async () => { + it("getDangerMainComments", async () => { const commitID = "e70f3d6468f61a4bef68c9e6eaba9166b096e23c" jsonResult = () => ({ isLastPage: true, @@ -187,6 +205,21 @@ describe("API testing - BitBucket Cloud", () => { uuid: "{1234-1234-1234-1234}", }, }, + { + content: { + raw: + "\n[//]: # (danger-id-1;)\n[//]: # ( File: dangerfile.ts;\n Line: 5;)\n\n- :warning: Hello updates\n\n\n ", + }, + id: 1234, + inline: { + from: 5, + path: "dangerfile.ts", + }, + user: { + uuid: "{1234-1234-1234-1234}", + display_name: "name", + }, + }, { content: { raw: "not a danger comment", @@ -198,7 +231,8 @@ describe("API testing - BitBucket Cloud", () => { }, ], }) - const result = await api.getDangerComments("1") + + const result = await api.getDangerMainComments("1") expect(api.fetch).toHaveBeenCalledWith( "https://api.bitbucket.org/2.0/repositories/foo/bar/pullrequests/1/comments?q=deleted=false",