@@ -40,122 +40,237 @@ func (fb *mockFormBuilder) FormDataContentType() string {
4040}
4141
4242func 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- }
5143 ctx := context .Background ()
52-
53- req := ImageEditRequest {
54- Mask : & os.File {},
55- }
56-
5744 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" )
6345
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
6952 }
70- _ , err = client .CreateEditImage (ctx , req )
71- checks .ErrorIs (t , err , mockFailedErr , "CreateImage should return error if form builder fails" )
7253
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+ },
75147 }
76148
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+ })
83157 }
84158
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 {}
100167
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+ })
107171}
108172
109173func 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- }
118174 ctx := context .Background ()
119-
120- req := ImageVariRequest {}
121-
122175 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" )
128176
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
131183 }
132184
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+ },
139250 }
140251
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+ }
148261
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 {}
152270
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+ })
159274}
160275
161276type testNamedReader struct { io.Reader }
0 commit comments