File tree 6 files changed +60
-3
lines changed
src/server/webhooks/events
6 files changed +60
-3
lines changed Original file line number Diff line number Diff line change 1
1
import { describe , test } from "vitest"
2
- import { isPrEventKey } from "./event.js"
2
+ import type { Event } from "../event.js"
3
+ import { isPrEvent , isPrEventKey } from "./event.js"
3
4
4
5
describe ( "isPrEventKey" , ( ) => {
5
6
test ( "pr:comment:added" , ( { expect } ) => {
@@ -12,3 +13,15 @@ describe("isPrEventKey", () => {
12
13
expect ( result ) . toBe ( false )
13
14
} )
14
15
} )
16
+
17
+ describe ( "isPrEvent" , ( ) => {
18
+ test ( "pr:comment:added" , ( { expect } ) => {
19
+ const result = isPrEvent ( { eventKey : "pr:comment:added" } as Event )
20
+ expect ( result ) . toBe ( true )
21
+ } )
22
+
23
+ test ( "project:modified" , ( { expect } ) => {
24
+ const result = isPrEvent ( { eventKey : "project:modified" } as Event )
25
+ expect ( result ) . toBe ( false )
26
+ } )
27
+ } )
Original file line number Diff line number Diff line change
1
+ import type { Event } from "../event.js"
1
2
import type { PRCommentAdded } from "./comment_added.js"
2
3
import type { PRCommentDeleted } from "./comment_deleted.js"
3
4
import type { PRCommentEdited } from "./comment_edited.js"
@@ -29,6 +30,10 @@ export type PrEvent =
29
30
| PRReviewerUpdated
30
31
export type PrEventKey = PrEvent [ "eventKey" ]
31
32
33
+ export function isPrEvent ( event : Event ) : event is PrEvent {
34
+ return isPrEventKey ( event . eventKey )
35
+ }
36
+
32
37
export function isPrEventKey ( key : unknown ) : key is PrEventKey {
33
38
return Object . values < unknown > ( prEventKeys ) . includes ( key )
34
39
}
Original file line number Diff line number Diff line change 1
1
import { describe , test } from "vitest"
2
- import { isProjectEventKey } from "./event.js"
2
+ import type { Event } from "../event.js"
3
+ import { isProjectEvent , isProjectEventKey } from "./event.js"
3
4
4
5
describe ( "isProjectEventKey" , ( ) => {
5
6
test ( "project:modified" , ( { expect } ) => {
@@ -12,3 +13,17 @@ describe("isProjectEventKey", () => {
12
13
expect ( result ) . toBe ( false )
13
14
} )
14
15
} )
16
+
17
+ describe ( "isProjectEvent" , ( ) => {
18
+ test ( "project:modified" , ( { expect } ) => {
19
+ const result = isProjectEvent ( { eventKey : "project:modified" } as Event )
20
+ expect ( result ) . toBe ( true )
21
+ } )
22
+
23
+ test ( "mirror:repo_synchronized" , ( { expect } ) => {
24
+ const result = isProjectEvent ( {
25
+ eventKey : "mirror:repo_synchronized" ,
26
+ } as Event )
27
+ expect ( result ) . toBe ( false )
28
+ } )
29
+ } )
Original file line number Diff line number Diff line change
1
+ import type { Event } from "../event.js"
1
2
import type { ProjectModified } from "./modified.js"
2
3
3
4
/** You can create webhooks for events that occur in a project. */
4
5
export type ProjectEvent = ProjectModified
5
6
export type ProjectEventKey = ProjectEvent [ "eventKey" ]
6
7
8
+ export function isProjectEvent ( event : Event ) : event is ProjectEvent {
9
+ return isProjectEventKey ( event . eventKey )
10
+ }
11
+
7
12
export function isProjectEventKey ( key : unknown ) : key is ProjectEventKey {
8
13
return Object . values < unknown > ( projectEventKeys ) . includes ( key )
9
14
}
Original file line number Diff line number Diff line change 1
1
import { describe , test } from "vitest"
2
- import { isRepoEventKey } from "./event.js"
2
+ import type { Event } from "../event.js"
3
+ import { isRepoEvent , isRepoEventKey } from "./event.js"
3
4
4
5
describe ( "isRepoEventKey" , ( ) => {
5
6
test ( "mirror:repo_synchronized" , ( { expect } ) => {
@@ -12,3 +13,16 @@ describe("isRepoEventKey", () => {
12
13
expect ( result ) . toBe ( false )
13
14
} )
14
15
} )
16
+ describe ( "isRepoEvent" , ( ) => {
17
+ test ( "mirror:repo_synchronized" , ( { expect } ) => {
18
+ const result = isRepoEvent ( {
19
+ eventKey : "mirror:repo_synchronized" ,
20
+ } as Event )
21
+ expect ( result ) . toBe ( true )
22
+ } )
23
+
24
+ test ( "project:modified" , ( { expect } ) => {
25
+ const result = isRepoEvent ( { eventKey : "project:modified" } as Event )
26
+ expect ( result ) . toBe ( false )
27
+ } )
28
+ } )
Original file line number Diff line number Diff line change
1
+ import type { Event } from "../event.js"
1
2
import type { RepoCommentAdded } from "./comment_added.js"
2
3
import type { RepoCommentDeleted } from "./comment_deleted.js"
3
4
import type { RepoCommentEdited } from "./comment_edited.js"
@@ -19,6 +20,10 @@ export type RepoEvent =
19
20
| RepoSecretDetected
20
21
export type RepoEventKey = RepoEvent [ "eventKey" ]
21
22
23
+ export function isRepoEvent ( event : Event ) : event is RepoEvent {
24
+ return isRepoEventKey ( event . eventKey )
25
+ }
26
+
22
27
export function isRepoEventKey ( key : unknown ) : key is RepoEventKey {
23
28
return Object . values < unknown > ( repoEventKeys ) . includes ( key )
24
29
}
You can’t perform that action at this time.
0 commit comments