Skip to content

Commit 293278e

Browse files
committed
Merge branch 'main' into refactor/api-fragments
Signed-off-by: Adam Setch <[email protected]>
2 parents 4ce4f62 + 95f85a7 commit 293278e

File tree

5 files changed

+53
-2
lines changed

5 files changed

+53
-2
lines changed

src/renderer/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ export interface GitifyPullRequestReview {
293293

294294
export type GitifyDiscussionState = DiscussionStateReason | 'OPEN' | 'ANSWERED';
295295

296-
export type GitifyPullRequestState = PullRequestState | 'DRAFT';
296+
export type GitifyPullRequestState = PullRequestState | 'DRAFT' | 'MERGE_QUEUE';
297297

298298
export type GitifyIssueState = IssueState | IssueStateReason;
299299

src/renderer/utils/notifications/filters/state.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ describe('renderer/utils/notifications/filters/state.ts', () => {
2222
NOT_PLANNED: 'closed',
2323
RESOLVED: 'closed',
2424

25+
MERGE_QUEUE: 'merged',
2526
MERGED: 'merged',
2627
DRAFT: 'draft',
2728

src/renderer/utils/notifications/filters/state.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ function mapStateToFilter(
8282
case 'NOT_PLANNED':
8383
case 'RESOLVED':
8484
return 'closed';
85+
case 'MERGE_QUEUE':
8586
case 'MERGED':
8687
return 'merged';
8788
case 'DRAFT':

src/renderer/utils/notifications/handlers/pullRequest.test.ts

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,45 @@ describe('renderer/utils/notifications/handlers/pullRequest.ts', () => {
122122
} as GitifySubject);
123123
});
124124

125+
it('merge queue pull request state', async () => {
126+
const mockPullRequest = mockPullRequestResponseNode({
127+
state: 'OPEN',
128+
isInMergeQueue: true,
129+
});
130+
131+
nock('https://api.github.com')
132+
.post('/graphql')
133+
.reply(200, {
134+
data: {
135+
repository: {
136+
pullRequest: mockPullRequest,
137+
},
138+
},
139+
});
140+
141+
const result = await pullRequestHandler.enrich(
142+
mockNotification,
143+
mockSettings,
144+
);
145+
146+
expect(result).toEqual({
147+
number: 123,
148+
state: 'MERGE_QUEUE',
149+
user: {
150+
login: mockAuthor.login,
151+
html_url: mockAuthor.html_url,
152+
avatar_url: mockAuthor.avatar_url,
153+
type: mockAuthor.type,
154+
},
155+
reviews: null,
156+
labels: [],
157+
linkedIssues: [],
158+
comments: 0,
159+
milestone: null,
160+
htmlUrl: 'https://github.com/gitify-app/notifications-test/pulls/123',
161+
} as GitifySubject);
162+
});
163+
125164
it('merged pull request state', async () => {
126165
const mockPullRequest = mockPullRequestResponseNode({
127166
state: 'MERGED',
@@ -349,6 +388,7 @@ describe('renderer/utils/notifications/handlers/pullRequest.ts', () => {
349388
const cases = {
350389
CLOSED: 'GitPullRequestClosedIcon',
351390
DRAFT: 'GitPullRequestDraftIcon',
391+
MERGE_QUEUE: 'GitMergeQueueIcon',
352392
MERGED: 'GitMergeIcon',
353393
OPEN: 'GitPullRequestIcon',
354394
} satisfies Record<GitifyPullRequestState, string>;
@@ -368,6 +408,7 @@ describe('renderer/utils/notifications/handlers/pullRequest.ts', () => {
368408
const cases = {
369409
CLOSED: IconColor.RED,
370410
DRAFT: IconColor.GRAY,
411+
MERGE_QUEUE: IconColor.YELLOW,
371412
MERGED: IconColor.PURPLE,
372413
OPEN: IconColor.GREEN,
373414
} satisfies Record<GitifyPullRequestState, IconColor>;
@@ -445,6 +486,7 @@ function mockPullRequestResponseNode(mocks: {
445486
state: PullRequestState;
446487
isDraft?: boolean;
447488
merged?: boolean;
489+
isInMergeQueue?: boolean;
448490
}): PullRequestResponse {
449491
return {
450492
__typename: 'PullRequest',
@@ -453,7 +495,7 @@ function mockPullRequestResponseNode(mocks: {
453495
state: mocks.state,
454496
isDraft: mocks.isDraft ?? false,
455497
merged: mocks.merged ?? false,
456-
isInMergeQueue: false,
498+
isInMergeQueue: mocks.isInMergeQueue ?? false,
457499
url: 'https://github.com/gitify-app/notifications-test/pulls/123',
458500
author: mockAuthor,
459501
labels: { nodes: [] },

src/renderer/utils/notifications/handlers/pullRequest.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import type { FC } from 'react';
33
import type { OcticonProps } from '@primer/octicons-react';
44
import {
55
GitMergeIcon,
6+
GitMergeQueueIcon,
67
GitPullRequestClosedIcon,
78
GitPullRequestDraftIcon,
89
GitPullRequestIcon,
@@ -35,6 +36,8 @@ class PullRequestHandler extends DefaultHandler {
3536
let prState: GitifyPullRequestState = pr.state;
3637
if (pr.isDraft) {
3738
prState = 'DRAFT';
39+
} else if (pr.isInMergeQueue) {
40+
prState = 'MERGE_QUEUE';
3841
}
3942

4043
const prComment = pr.comments?.nodes[0];
@@ -64,6 +67,8 @@ class PullRequestHandler extends DefaultHandler {
6467
return GitPullRequestDraftIcon;
6568
case 'CLOSED':
6669
return GitPullRequestClosedIcon;
70+
case 'MERGE_QUEUE':
71+
return GitMergeQueueIcon;
6772
case 'MERGED':
6873
return GitMergeIcon;
6974
default:
@@ -77,6 +82,8 @@ class PullRequestHandler extends DefaultHandler {
7782
return IconColor.GREEN;
7883
case 'CLOSED':
7984
return IconColor.RED;
85+
case 'MERGE_QUEUE':
86+
return IconColor.YELLOW;
8087
case 'MERGED':
8188
return IconColor.PURPLE;
8289
default:

0 commit comments

Comments
 (0)