@@ -44,9 +44,84 @@ func TestHandleMetadataTriage_Success(t *testing.T) {
44
44
mockgac .EXPECT ().IsValidWPTMember ().Return (true , nil )
45
45
46
46
mocktm := sharedtest .NewMockTriageMetadata (mockCtrl )
47
- mocktm .EXPECT ().Triage (gomock .Any ()).Return ("" , nil )
47
+ mocktm .EXPECT ().Triage (gomock .Any ()).Return ("https://github.com/web-platform-tests/wpt-metadata/pull/1 " , nil )
48
48
49
- handleMetadataTriage (ctx , mockgac , mocktm , w , req )
49
+ mockSet := sharedtest .NewMockRedisSet (mockCtrl )
50
+ mockSet .EXPECT ().Add (shared .PendingMetadataCacheKey , "1" ).Return (nil )
51
+
52
+ mockCache := sharedtest .NewMockObjectCache (mockCtrl )
53
+ mockCache .EXPECT ().Put (shared .PendingMetadataCachePrefix + "1" , gomock .Any ()).Return (nil )
54
+
55
+ handleMetadataTriage (ctx , mockgac , mocktm , mockCache , mockSet , w , req )
56
+
57
+ assert .Equal (t , http .StatusOK , w .Code )
58
+ }
59
+
60
+ func TestHandleMetadataTriage_FailToCachePr (t * testing.T ) {
61
+ mockCtrl := gomock .NewController (t )
62
+ defer mockCtrl .Finish ()
63
+ ctx := sharedtest .NewTestContext ()
64
+ w := httptest .NewRecorder ()
65
+
66
+ body :=
67
+ `{
68
+ "/bar/foo.html": [
69
+ {
70
+ "product":"chrome",
71
+ "url":"bugs.bar",
72
+ "results":[{"status":6}]
73
+ }
74
+ ]}`
75
+ bodyReader := strings .NewReader (body )
76
+ req := httptest .NewRequest ("PATCH" , "https://foo/metadata" , bodyReader )
77
+ req .Header .Set ("Content-Type" , "application/json" )
78
+
79
+ mockgac := sharedtest .NewMockGitHubAccessControl (mockCtrl )
80
+ mockgac .EXPECT ().IsValidWPTMember ().Return (true , nil )
81
+
82
+ mocktm := sharedtest .NewMockTriageMetadata (mockCtrl )
83
+ mocktm .EXPECT ().Triage (gomock .Any ()).Return ("https://github.com/web-platform-tests/wpt-metadata/pull/1" , nil )
84
+
85
+ mockSet := sharedtest .NewMockRedisSet (mockCtrl )
86
+ mockSet .EXPECT ().Add (shared .PendingMetadataCacheKey , "1" ).Return (errors .New ("Cache failed" ))
87
+
88
+ handleMetadataTriage (ctx , mockgac , mocktm , nil , mockSet , w , req )
89
+
90
+ assert .Equal (t , http .StatusOK , w .Code )
91
+ }
92
+
93
+ func TestHandleMetadataTriage_FailToCacheMetadata (t * testing.T ) {
94
+ mockCtrl := gomock .NewController (t )
95
+ defer mockCtrl .Finish ()
96
+ ctx := sharedtest .NewTestContext ()
97
+ w := httptest .NewRecorder ()
98
+
99
+ body :=
100
+ `{
101
+ "/bar/foo.html": [
102
+ {
103
+ "product":"chrome",
104
+ "url":"bugs.bar",
105
+ "results":[{"status":6}]
106
+ }
107
+ ]}`
108
+ bodyReader := strings .NewReader (body )
109
+ req := httptest .NewRequest ("PATCH" , "https://foo/metadata" , bodyReader )
110
+ req .Header .Set ("Content-Type" , "application/json" )
111
+
112
+ mockgac := sharedtest .NewMockGitHubAccessControl (mockCtrl )
113
+ mockgac .EXPECT ().IsValidWPTMember ().Return (true , nil )
114
+
115
+ mocktm := sharedtest .NewMockTriageMetadata (mockCtrl )
116
+ mocktm .EXPECT ().Triage (gomock .Any ()).Return ("https://github.com/web-platform-tests/wpt-metadata/pull/1" , nil )
117
+
118
+ mockSet := sharedtest .NewMockRedisSet (mockCtrl )
119
+ mockSet .EXPECT ().Add (shared .PendingMetadataCacheKey , "1" ).Return (nil )
120
+
121
+ mockCache := sharedtest .NewMockObjectCache (mockCtrl )
122
+ mockCache .EXPECT ().Put (shared .PendingMetadataCachePrefix + "1" , gomock .Any ()).Return (errors .New ("Cache failed" ))
123
+
124
+ handleMetadataTriage (ctx , mockgac , mocktm , mockCache , mockSet , w , req )
50
125
51
126
assert .Equal (t , http .StatusOK , w .Code )
52
127
}
@@ -66,14 +141,14 @@ func TestHandleMetadataTriage_NonSimpleRequests(t *testing.T) {
66
141
req := httptest .NewRequest ("GET" , "https://foo/metadata" , bodyReader )
67
142
req .Header .Set ("Content-Type" , "application/json" )
68
143
69
- handleMetadataTriage (nil , nil , nil , w , req )
144
+ handleMetadataTriage (nil , nil , nil , nil , nil , w , req )
70
145
71
146
assert .Equal (t , http .StatusBadRequest , w .Code )
72
147
73
148
w = httptest .NewRecorder ()
74
149
req = httptest .NewRequest ("POST" , "https://foo/metadata" , bodyReader )
75
150
76
- handleMetadataTriage (nil , nil , nil , w , req )
151
+ handleMetadataTriage (nil , nil , nil , nil , nil , w , req )
77
152
78
153
assert .Equal (t , http .StatusBadRequest , w .Code )
79
154
}
@@ -93,7 +168,7 @@ func TestHandleMetadataTriage_WrongContentType(t *testing.T) {
93
168
req := httptest .NewRequest ("PATCH" , "https://foo/metadata" , bodyReader )
94
169
req .Header .Set ("Content-Type" , "application/x-www-form-urlencoded" )
95
170
96
- handleMetadataTriage (nil , nil , nil , w , req )
171
+ handleMetadataTriage (nil , nil , nil , nil , nil , w , req )
97
172
98
173
assert .Equal (t , http .StatusBadRequest , w .Code )
99
174
}
@@ -104,7 +179,7 @@ func TestHandleMetadataTriage_InvalidBody(t *testing.T) {
104
179
req := httptest .NewRequest ("PATCH" , "https://foo/metadata" , bodyReader )
105
180
req .Header .Set ("Content-Type" , "application/json" )
106
181
107
- handleMetadataTriage (nil , nil , nil , w , req )
182
+ handleMetadataTriage (nil , nil , nil , nil , nil , w , req )
108
183
109
184
assert .Equal (t , http .StatusBadRequest , w .Code )
110
185
}
@@ -128,7 +203,7 @@ func TestHandleMetadataTriage_InvalidProduct(t *testing.T) {
128
203
req := httptest .NewRequest ("PATCH" , "https://foo/metadata" , bodyReader )
129
204
req .Header .Set ("Content-Type" , "application/json" )
130
205
131
- handleMetadataTriage (ctx , nil , nil , w , req )
206
+ handleMetadataTriage (ctx , nil , nil , nil , nil , w , req )
132
207
133
208
assert .Equal (t , http .StatusBadRequest , w .Code )
134
209
}
0 commit comments