@@ -40,122 +40,237 @@ func (fb *mockFormBuilder) FormDataContentType() string {
40
40
}
41
41
42
42
func TestImageFormBuilderFailures (t * testing.T ) {
43
- config := DefaultConfig ("" )
44
- config .BaseURL = ""
45
- client := NewClientWithConfig (config )
46
-
47
- mockBuilder := & mockFormBuilder {}
48
- client .createFormBuilder = func (io.Writer ) utils.FormBuilder {
49
- return mockBuilder
50
- }
51
43
ctx := context .Background ()
52
-
53
- req := ImageEditRequest {
54
- Mask : & os.File {},
55
- }
56
-
57
44
mockFailedErr := fmt .Errorf ("mock form builder fail" )
58
- mockBuilder .mockCreateFormFileReader = func (string , io.Reader , string ) error {
59
- return mockFailedErr
60
- }
61
- _ , err := client .CreateEditImage (ctx , req )
62
- checks .ErrorIs (t , err , mockFailedErr , "CreateImage should return error if form builder fails" )
63
45
64
- mockBuilder .mockCreateFormFileReader = func (name string , _ io.Reader , _ string ) error {
65
- if name == "mask" {
66
- return mockFailedErr
67
- }
68
- return nil
46
+ newClient := func (fb * mockFormBuilder ) * Client {
47
+ cfg := DefaultConfig ("" )
48
+ cfg .BaseURL = ""
49
+ c := NewClientWithConfig (cfg )
50
+ c .createFormBuilder = func (io.Writer ) utils.FormBuilder { return fb }
51
+ return c
69
52
}
70
- _ , err = client .CreateEditImage (ctx , req )
71
- checks .ErrorIs (t , err , mockFailedErr , "CreateImage should return error if form builder fails" )
72
53
73
- mockBuilder .mockCreateFormFile = func (string , * os.File ) error {
74
- return nil
54
+ tests := []struct {
55
+ name string
56
+ setup func (* mockFormBuilder )
57
+ req ImageEditRequest
58
+ }{
59
+ {
60
+ name : "image" ,
61
+ setup : func (fb * mockFormBuilder ) {
62
+ fb .mockCreateFormFileReader = func (string , io.Reader , string ) error { return mockFailedErr }
63
+ fb .mockWriteField = func (string , string ) error { return nil }
64
+ fb .mockClose = func () error { return nil }
65
+ },
66
+ req : ImageEditRequest {Image : bytes .NewBuffer (nil ), Mask : bytes .NewBuffer (nil )},
67
+ },
68
+ {
69
+ name : "mask" ,
70
+ setup : func (fb * mockFormBuilder ) {
71
+ fb .mockCreateFormFileReader = func (name string , _ io.Reader , _ string ) error {
72
+ if name == "mask" {
73
+ return mockFailedErr
74
+ }
75
+ return nil
76
+ }
77
+ fb .mockWriteField = func (string , string ) error { return nil }
78
+ fb .mockClose = func () error { return nil }
79
+ },
80
+ req : ImageEditRequest {Image : bytes .NewBuffer (nil ), Mask : bytes .NewBuffer (nil )},
81
+ },
82
+ {
83
+ name : "prompt" ,
84
+ setup : func (fb * mockFormBuilder ) {
85
+ fb .mockCreateFormFileReader = func (string , io.Reader , string ) error { return nil }
86
+ fb .mockWriteField = func (field , _ string ) error {
87
+ if field == "prompt" {
88
+ return mockFailedErr
89
+ }
90
+ return nil
91
+ }
92
+ fb .mockClose = func () error { return nil }
93
+ },
94
+ req : ImageEditRequest {Image : bytes .NewBuffer (nil ), Mask : bytes .NewBuffer (nil )},
95
+ },
96
+ {
97
+ name : "n" ,
98
+ setup : func (fb * mockFormBuilder ) {
99
+ fb .mockCreateFormFileReader = func (string , io.Reader , string ) error { return nil }
100
+ fb .mockWriteField = func (field , _ string ) error {
101
+ if field == "n" {
102
+ return mockFailedErr
103
+ }
104
+ return nil
105
+ }
106
+ fb .mockClose = func () error { return nil }
107
+ },
108
+ req : ImageEditRequest {Image : bytes .NewBuffer (nil ), Mask : bytes .NewBuffer (nil )},
109
+ },
110
+ {
111
+ name : "size" ,
112
+ setup : func (fb * mockFormBuilder ) {
113
+ fb .mockCreateFormFileReader = func (string , io.Reader , string ) error { return nil }
114
+ fb .mockWriteField = func (field , _ string ) error {
115
+ if field == "size" {
116
+ return mockFailedErr
117
+ }
118
+ return nil
119
+ }
120
+ fb .mockClose = func () error { return nil }
121
+ },
122
+ req : ImageEditRequest {Image : bytes .NewBuffer (nil ), Mask : bytes .NewBuffer (nil )},
123
+ },
124
+ {
125
+ name : "response_format" ,
126
+ setup : func (fb * mockFormBuilder ) {
127
+ fb .mockCreateFormFileReader = func (string , io.Reader , string ) error { return nil }
128
+ fb .mockWriteField = func (field , _ string ) error {
129
+ if field == "response_format" {
130
+ return mockFailedErr
131
+ }
132
+ return nil
133
+ }
134
+ fb .mockClose = func () error { return nil }
135
+ },
136
+ req : ImageEditRequest {Image : bytes .NewBuffer (nil ), Mask : bytes .NewBuffer (nil )},
137
+ },
138
+ {
139
+ name : "close" ,
140
+ setup : func (fb * mockFormBuilder ) {
141
+ fb .mockCreateFormFileReader = func (string , io.Reader , string ) error { return nil }
142
+ fb .mockWriteField = func (string , string ) error { return nil }
143
+ fb .mockClose = func () error { return mockFailedErr }
144
+ },
145
+ req : ImageEditRequest {Image : bytes .NewBuffer (nil ), Mask : bytes .NewBuffer (nil )},
146
+ },
75
147
}
76
148
77
- var failForField string
78
- mockBuilder .mockWriteField = func (fieldname , _ string ) error {
79
- if fieldname == failForField {
80
- return mockFailedErr
81
- }
82
- return nil
149
+ for _ , tc := range tests {
150
+ t .Run (tc .name , func (t * testing.T ) {
151
+ fb := & mockFormBuilder {}
152
+ tc .setup (fb )
153
+ client := newClient (fb )
154
+ _ , err := client .CreateEditImage (ctx , tc .req )
155
+ checks .ErrorIs (t , err , mockFailedErr , "CreateEditImage should return error if form builder fails" )
156
+ })
83
157
}
84
158
85
- failForField = "prompt"
86
- _ , err = client .CreateEditImage (ctx , req )
87
- checks .ErrorIs (t , err , mockFailedErr , "CreateImage should return error if form builder fails" )
88
-
89
- failForField = "n"
90
- _ , err = client .CreateEditImage (ctx , req )
91
- checks .ErrorIs (t , err , mockFailedErr , "CreateImage should return error if form builder fails" )
92
-
93
- failForField = "size"
94
- _ , err = client .CreateEditImage (ctx , req )
95
- checks .ErrorIs (t , err , mockFailedErr , "CreateImage should return error if form builder fails" )
96
-
97
- failForField = "response_format"
98
- _ , err = client .CreateEditImage (ctx , req )
99
- checks .ErrorIs (t , err , mockFailedErr , "CreateImage should return error if form builder fails" )
159
+ t .Run ("new request" , func (t * testing.T ) {
160
+ fb := & mockFormBuilder {
161
+ mockCreateFormFileReader : func (string , io.Reader , string ) error { return nil },
162
+ mockWriteField : func (string , string ) error { return nil },
163
+ mockClose : func () error { return nil },
164
+ }
165
+ client := newClient (fb )
166
+ client .requestBuilder = & failingRequestBuilder {}
100
167
101
- failForField = ""
102
- mockBuilder .mockClose = func () error {
103
- return mockFailedErr
104
- }
105
- _ , err = client .CreateEditImage (ctx , req )
106
- checks .ErrorIs (t , err , mockFailedErr , "CreateImage should return error if form builder fails" )
168
+ _ , err := client .CreateEditImage (ctx , ImageEditRequest {Image : bytes .NewBuffer (nil ), Mask : bytes .NewBuffer (nil )})
169
+ checks .ErrorIs (t , err , errTestRequestBuilderFailed , "CreateEditImage should return error if request builder fails" )
170
+ })
107
171
}
108
172
109
173
func TestVariImageFormBuilderFailures (t * testing.T ) {
110
- config := DefaultConfig ("" )
111
- config .BaseURL = ""
112
- client := NewClientWithConfig (config )
113
-
114
- mockBuilder := & mockFormBuilder {}
115
- client .createFormBuilder = func (io.Writer ) utils.FormBuilder {
116
- return mockBuilder
117
- }
118
174
ctx := context .Background ()
119
-
120
- req := ImageVariRequest {}
121
-
122
175
mockFailedErr := fmt .Errorf ("mock form builder fail" )
123
- mockBuilder .mockCreateFormFileReader = func (string , io.Reader , string ) error {
124
- return mockFailedErr
125
- }
126
- _ , err := client .CreateVariImage (ctx , req )
127
- checks .ErrorIs (t , err , mockFailedErr , "CreateVariImage should return error if form builder fails" )
128
176
129
- mockBuilder .mockCreateFormFileReader = func (string , io.Reader , string ) error {
130
- return nil
177
+ newClient := func (fb * mockFormBuilder ) * Client {
178
+ cfg := DefaultConfig ("" )
179
+ cfg .BaseURL = ""
180
+ c := NewClientWithConfig (cfg )
181
+ c .createFormBuilder = func (io.Writer ) utils.FormBuilder { return fb }
182
+ return c
131
183
}
132
184
133
- var failForField string
134
- mockBuilder .mockWriteField = func (fieldname , _ string ) error {
135
- if fieldname == failForField {
136
- return mockFailedErr
137
- }
138
- return nil
185
+ tests := []struct {
186
+ name string
187
+ setup func (* mockFormBuilder )
188
+ req ImageVariRequest
189
+ }{
190
+ {
191
+ name : "image" ,
192
+ setup : func (fb * mockFormBuilder ) {
193
+ fb .mockCreateFormFileReader = func (string , io.Reader , string ) error { return mockFailedErr }
194
+ fb .mockWriteField = func (string , string ) error { return nil }
195
+ fb .mockClose = func () error { return nil }
196
+ },
197
+ req : ImageVariRequest {Image : bytes .NewBuffer (nil )},
198
+ },
199
+ {
200
+ name : "n" ,
201
+ setup : func (fb * mockFormBuilder ) {
202
+ fb .mockCreateFormFileReader = func (string , io.Reader , string ) error { return nil }
203
+ fb .mockWriteField = func (field string , _ string ) error {
204
+ if field == "n" {
205
+ return mockFailedErr
206
+ }
207
+ return nil
208
+ }
209
+ fb .mockClose = func () error { return nil }
210
+ },
211
+ req : ImageVariRequest {Image : bytes .NewBuffer (nil )},
212
+ },
213
+ {
214
+ name : "size" ,
215
+ setup : func (fb * mockFormBuilder ) {
216
+ fb .mockCreateFormFileReader = func (string , io.Reader , string ) error { return nil }
217
+ fb .mockWriteField = func (field string , _ string ) error {
218
+ if field == "size" {
219
+ return mockFailedErr
220
+ }
221
+ return nil
222
+ }
223
+ fb .mockClose = func () error { return nil }
224
+ },
225
+ req : ImageVariRequest {Image : bytes .NewBuffer (nil )},
226
+ },
227
+ {
228
+ name : "response_format" ,
229
+ setup : func (fb * mockFormBuilder ) {
230
+ fb .mockCreateFormFileReader = func (string , io.Reader , string ) error { return nil }
231
+ fb .mockWriteField = func (field string , _ string ) error {
232
+ if field == "response_format" {
233
+ return mockFailedErr
234
+ }
235
+ return nil
236
+ }
237
+ fb .mockClose = func () error { return nil }
238
+ },
239
+ req : ImageVariRequest {Image : bytes .NewBuffer (nil )},
240
+ },
241
+ {
242
+ name : "close" ,
243
+ setup : func (fb * mockFormBuilder ) {
244
+ fb .mockCreateFormFileReader = func (string , io.Reader , string ) error { return nil }
245
+ fb .mockWriteField = func (string , string ) error { return nil }
246
+ fb .mockClose = func () error { return mockFailedErr }
247
+ },
248
+ req : ImageVariRequest {Image : bytes .NewBuffer (nil )},
249
+ },
139
250
}
140
251
141
- failForField = "n"
142
- _ , err = client .CreateVariImage (ctx , req )
143
- checks .ErrorIs (t , err , mockFailedErr , "CreateVariImage should return error if form builder fails" )
144
-
145
- failForField = "size"
146
- _ , err = client .CreateVariImage (ctx , req )
147
- checks .ErrorIs (t , err , mockFailedErr , "CreateVariImage should return error if form builder fails" )
252
+ for _ , tc := range tests {
253
+ t .Run (tc .name , func (t * testing.T ) {
254
+ fb := & mockFormBuilder {}
255
+ tc .setup (fb )
256
+ client := newClient (fb )
257
+ _ , err := client .CreateVariImage (ctx , tc .req )
258
+ checks .ErrorIs (t , err , mockFailedErr , "CreateVariImage should return error if form builder fails" )
259
+ })
260
+ }
148
261
149
- failForField = "response_format"
150
- _ , err = client .CreateVariImage (ctx , req )
151
- checks .ErrorIs (t , err , mockFailedErr , "CreateVariImage should return error if form builder fails" )
262
+ t .Run ("new request" , func (t * testing.T ) {
263
+ fb := & mockFormBuilder {
264
+ mockCreateFormFileReader : func (string , io.Reader , string ) error { return nil },
265
+ mockWriteField : func (string , string ) error { return nil },
266
+ mockClose : func () error { return nil },
267
+ }
268
+ client := newClient (fb )
269
+ client .requestBuilder = & failingRequestBuilder {}
152
270
153
- failForField = ""
154
- mockBuilder .mockClose = func () error {
155
- return mockFailedErr
156
- }
157
- _ , err = client .CreateVariImage (ctx , req )
158
- checks .ErrorIs (t , err , mockFailedErr , "CreateImage should return error if form builder fails" )
271
+ _ , err := client .CreateVariImage (ctx , ImageVariRequest {Image : bytes .NewBuffer (nil )})
272
+ checks .ErrorIs (t , err , errTestRequestBuilderFailed , "CreateVariImage should return error if request builder fails" )
273
+ })
159
274
}
160
275
161
276
type testNamedReader struct { io.Reader }
0 commit comments