5
5
"context"
6
6
"fmt"
7
7
"io"
8
+ "net/url"
8
9
"testing"
9
10
"time"
10
11
@@ -47,7 +48,7 @@ func (h *successHandler) StartOperation(ctx context.Context, service, operation
47
48
return nil , HandlerErrorf (HandlerErrorTypeBadRequest , "invalid 'User-Agent' header: %q" , options .Header .Get ("User-Agent" ))
48
49
}
49
50
50
- return & HandlerStartOperationResultSync [any ]{Value : body , Links : options . Links }, nil
51
+ return & HandlerStartOperationResultSync [any ]{Value : body }, nil
51
52
}
52
53
53
54
func TestSuccess (t * testing.T ) {
@@ -110,6 +111,7 @@ func TestClientRequestID(t *testing.T) {
110
111
t .Run (c .name , func (t * testing.T ) {
111
112
result , err := client .StartOperation (ctx , "foo" , nil , c .request )
112
113
require .NoError (t , err )
114
+ require .Equal (t , c .request .Links , result .Links )
113
115
response := result .Successful
114
116
require .NotNil (t , response )
115
117
var responseBody []byte
@@ -165,7 +167,7 @@ func (h *echoHandler) StartOperation(ctx context.Context, service, operation str
165
167
Data : data ,
166
168
}
167
169
}
168
- return & HandlerStartOperationResultSync [any ]{Value : output }, nil
170
+ return & HandlerStartOperationResultSync [any ]{Value : output , Links : options . Links }, nil
169
171
}
170
172
171
173
func TestReaderIO (t * testing.T ) {
@@ -182,6 +184,7 @@ func TestReaderIO(t *testing.T) {
182
184
name string
183
185
input any
184
186
header Header
187
+ links []Link
185
188
}{
186
189
{
187
190
name : "content" ,
@@ -192,14 +195,24 @@ func TestReaderIO(t *testing.T) {
192
195
name : "reader" ,
193
196
input : reader ,
194
197
header : Header {"input-type" : "reader" },
198
+ links : []Link {{
199
+ URL : & url.URL {
200
+ Scheme : "https" ,
201
+ Host : "example.com" ,
202
+ Path : "/path/to/something" ,
203
+ RawQuery : "param=value" ,
204
+ },
205
+ Type : "url" ,
206
+ }},
195
207
},
196
208
}
197
209
198
210
for _ , tc := range testCases {
199
211
tc := tc
200
212
t .Run (tc .name , func (t * testing.T ) {
201
- result , err := client .StartOperation (ctx , "foo" , tc .input , StartOperationOptions {Header : tc .header })
213
+ result , err := client .StartOperation (ctx , "foo" , tc .input , StartOperationOptions {Header : tc .header , Links : tc . links })
202
214
require .NoError (t , err )
215
+ require .Equal (t , tc .links , result .Links )
203
216
response := result .Successful
204
217
require .NotNil (t , response )
205
218
var operationResult string
0 commit comments