@@ -17,12 +17,6 @@ describe("TwittewTweetDaysProvider", function () {
17
17
18
18
const MOCK_TWITTER_CLIENT = new Client ( { } as auth . OAuth2User ) ;
19
19
20
- const mockContext : ProviderContext = {
21
- twitter : {
22
- id : "123" ,
23
- } ,
24
- } ;
25
-
26
20
const mockPayload : RequestPayload = {
27
21
address : "0x0" ,
28
22
proofs : {
@@ -36,15 +30,80 @@ describe("TwittewTweetDaysProvider", function () {
36
30
const sessionKey = mockPayload . proofs . sessionKey ;
37
31
const code = mockPayload . proofs . code ;
38
32
39
- it ( "handles valid tweet days count" , async ( ) => {
33
+ it ( "handles gte 30 days tweet count" , async ( ) => {
34
+ ( getUserTweetTimeline as jest . MockedFunction < typeof getUserTweetTimeline > ) . mockImplementation ( ( ) => {
35
+ return Promise . resolve ( {
36
+ numberDaysTweeted : 35 ,
37
+ errors : undefined ,
38
+ } ) ;
39
+ } ) ;
40
+
41
+ const mockContext : ProviderContext = {
42
+ twitter : {
43
+ id : "123" ,
44
+ numberDaysTweeted : 35 ,
45
+ errors : undefined ,
46
+ } ,
47
+ } ;
48
+
49
+ const provider = new TwitterTweetDaysProvider ( { threshold : "30" } ) ;
50
+ const result = await provider . verify ( mockPayload , mockContext ) ;
51
+
52
+ expect ( getAuthClient ) . toBeCalledWith ( sessionKey , code , mockContext ) ;
53
+ expect ( getAuthClient ) . toHaveBeenCalledTimes ( 1 ) ;
54
+ expect ( getUserTweetTimeline ) . toHaveBeenCalledTimes ( 1 ) ;
55
+ expect ( result ) . toEqual ( {
56
+ valid : true ,
57
+ error : undefined ,
58
+ record : { id : "123" } ,
59
+ } ) ;
60
+ } ) ;
61
+
62
+ it ( "handles gte 60 days tweet count" , async ( ) => {
63
+ ( getUserTweetTimeline as jest . MockedFunction < typeof getUserTweetTimeline > ) . mockImplementation ( ( ) => {
64
+ return Promise . resolve ( {
65
+ numberDaysTweeted : 65 ,
66
+ errors : undefined ,
67
+ } ) ;
68
+ } ) ;
69
+
70
+ const mockContext : ProviderContext = {
71
+ twitter : {
72
+ id : "123" ,
73
+ numberDaysTweeted : 65 ,
74
+ errors : undefined ,
75
+ } ,
76
+ } ;
77
+
78
+ const provider = new TwitterTweetDaysProvider ( { threshold : "60" } ) ;
79
+ const result = await provider . verify ( mockPayload , mockContext ) ;
80
+
81
+ expect ( getAuthClient ) . toBeCalledWith ( sessionKey , code , mockContext ) ;
82
+ expect ( getAuthClient ) . toHaveBeenCalledTimes ( 1 ) ;
83
+ expect ( getUserTweetTimeline ) . toHaveBeenCalledTimes ( 1 ) ;
84
+ expect ( result ) . toEqual ( {
85
+ valid : true ,
86
+ error : undefined ,
87
+ record : { id : "123" } ,
88
+ } ) ;
89
+ } ) ;
90
+
91
+ it ( "handles gte 120 days tweet count" , async ( ) => {
40
92
( getUserTweetTimeline as jest . MockedFunction < typeof getUserTweetTimeline > ) . mockImplementation ( ( ) => {
41
93
return Promise . resolve ( {
42
94
numberDaysTweeted : 120 ,
43
- valid : true ,
44
95
errors : undefined ,
45
96
} ) ;
46
97
} ) ;
47
98
99
+ const mockContext : ProviderContext = {
100
+ twitter : {
101
+ id : "123" ,
102
+ numberDaysTweeted : 120 ,
103
+ errors : undefined ,
104
+ } ,
105
+ } ;
106
+
48
107
const provider = new TwitterTweetDaysProvider ( { threshold : "120" } ) ;
49
108
const result = await provider . verify ( mockPayload , mockContext ) ;
50
109
@@ -62,11 +121,18 @@ describe("TwittewTweetDaysProvider", function () {
62
121
( getUserTweetTimeline as jest . MockedFunction < typeof getUserTweetTimeline > ) . mockImplementation ( ( ) => {
63
122
return Promise . resolve ( {
64
123
numberDaysTweeted : 12 ,
65
- valid : false ,
66
124
errors : undefined ,
67
125
} ) ;
68
126
} ) ;
69
127
128
+ const mockContext : ProviderContext = {
129
+ twitter : {
130
+ id : "123" ,
131
+ numberDaysTweeted : 12 ,
132
+ errors : undefined ,
133
+ } ,
134
+ } ;
135
+
70
136
const provider = new TwitterTweetDaysProvider ( { threshold : "120" } ) ;
71
137
const result = await provider . verify ( mockPayload , mockContext ) ;
72
138
@@ -84,11 +150,18 @@ describe("TwittewTweetDaysProvider", function () {
84
150
( getUserTweetTimeline as jest . MockedFunction < typeof getUserTweetTimeline > ) . mockImplementation ( ( ) => {
85
151
return Promise . resolve ( {
86
152
numberDaysTweeted : undefined ,
87
- valid : false ,
88
153
errors : [ "Errors" ] ,
89
154
} ) ;
90
155
} ) ;
91
156
157
+ const mockContext : ProviderContext = {
158
+ twitter : {
159
+ id : "123" ,
160
+ numberDaysTweeted : 35 ,
161
+ errors : undefined ,
162
+ } ,
163
+ } ;
164
+
92
165
const provider = new TwitterTweetDaysProvider ( { threshold : "120" } ) ;
93
166
const result = await provider . verify ( mockPayload , mockContext ) ;
94
167
0 commit comments