@@ -20,43 +20,80 @@ const getPagePropertiesMock = {
20
20
properties : {
21
21
Category : { id : '1' , type : 'text' , text : { content : 'Category A' } } ,
22
22
Slug : { id : '2' , type : 'text' , text : { content : 'slug-value' } } ,
23
+ Date : { id : '3' , type : 'date' , date : { start : '2023-05-01' } } ,
23
24
} ,
24
25
} ;
25
26
26
27
describe ( 'getPageProperties' , ( ) => {
27
- it ( 'should return properties when valid pageId is provided' , async ( ) => {
28
- // Mock the notionClient.pages.retrieve method
28
+ it ( '유효한 pageId가 제공되고 keys가 없을 때 모든 속성을 반환한다' , async ( ) => {
29
29
notionClient . pages . retrieve = vi
30
30
. fn ( )
31
31
. mockResolvedValue ( getPagePropertiesMock ) ;
32
32
33
- // Test when no keys are provided (should return all properties)
34
33
const properties = await notionClient . getPageProperties ( TEST_ID ) ;
35
34
expect ( properties ) . toEqual ( getPagePropertiesMock . properties ) ;
35
+ expect ( notionClient . pages . retrieve ) . toHaveBeenCalledWith ( {
36
+ page_id : TEST_ID ,
37
+ } ) ;
36
38
} ) ;
37
39
38
- it ( 'should return properties when valid pageId, keys are provided' , async ( ) => {
39
- // Mock the notionClient.pages.retrieve method
40
+ it ( '유효한 pageId와 keys가 제공될 때 지정된 속성만 반환한다' , async ( ) => {
40
41
notionClient . pages . retrieve = vi
41
42
. fn ( )
42
43
. mockResolvedValue ( getPagePropertiesMock ) ;
43
44
44
45
const filteredProperties = await notionClient . getPageProperties ( TEST_ID , [
45
46
'Category' ,
47
+ 'Date' ,
46
48
] ) ;
47
49
48
50
expect ( filteredProperties ) . toEqual ( {
49
51
Category : getPagePropertiesMock . properties . Category ,
52
+ Date : getPagePropertiesMock . properties . Date ,
53
+ } ) ;
54
+ expect ( notionClient . pages . retrieve ) . toHaveBeenCalledWith ( {
55
+ page_id : TEST_ID ,
50
56
} ) ;
51
57
} ) ;
52
58
53
- it ( 'should return undefined when invalid pageId is provided ' , async ( ) => {
59
+ it ( '유효하지 않은 pageId가 제공될 때 undefined를 반환한다 ' , async ( ) => {
54
60
notionClient . pages . retrieve = vi . fn ( ) . mockResolvedValue ( null ) ;
55
61
56
62
const filteredProperties = await notionClient . getPageProperties ( TEST_ID , [
57
63
'Category' ,
58
64
] ) ;
59
65
60
66
expect ( filteredProperties ) . toBeUndefined ( ) ;
67
+ expect ( notionClient . pages . retrieve ) . toHaveBeenCalledWith ( {
68
+ page_id : TEST_ID ,
69
+ } ) ;
70
+ } ) ;
71
+
72
+ it ( '유효한 pageId가 제공되지만 일치하는 keys가 없을 때 빈 객체를 반환한다' , async ( ) => {
73
+ notionClient . pages . retrieve = vi
74
+ . fn ( )
75
+ . mockResolvedValue ( getPagePropertiesMock ) ;
76
+
77
+ const filteredProperties = await notionClient . getPageProperties ( TEST_ID , [
78
+ 'NonExistentKey' ,
79
+ ] ) ;
80
+
81
+ expect ( filteredProperties ) . toEqual ( { } ) ;
82
+ expect ( notionClient . pages . retrieve ) . toHaveBeenCalledWith ( {
83
+ page_id : TEST_ID ,
84
+ } ) ;
85
+ } ) ;
86
+
87
+ it ( 'API 오류를 적절히 처리한다' , async ( ) => {
88
+ notionClient . pages . retrieve = vi
89
+ . fn ( )
90
+ . mockRejectedValue ( new Error ( 'API Error' ) ) ;
91
+
92
+ await expect ( notionClient . getPageProperties ( TEST_ID ) ) . rejects . toThrow (
93
+ 'API Error'
94
+ ) ;
95
+ expect ( notionClient . pages . retrieve ) . toHaveBeenCalledWith ( {
96
+ page_id : TEST_ID ,
97
+ } ) ;
61
98
} ) ;
62
99
} ) ;
0 commit comments