github.com/Kong/go-pdk@v0.11.0/service/request/request_test.go (about) 1 package request 2 3 import ( 4 "testing" 5 6 "github.com/Kong/go-pdk/bridge" 7 "github.com/Kong/go-pdk/bridge/bridgetest" 8 "github.com/Kong/go-pdk/server/kong_plugin_protocol" 9 "github.com/stretchr/testify/assert" 10 "google.golang.org/protobuf/types/known/structpb" 11 ) 12 13 func TestServRequest(t *testing.T) { 14 // q, err := bridge.WrapHeaders(map[string][]string{ 15 // "ref": []string{"wayback"}, 16 // "trail": []string{"faint"}, 17 // }) 18 // assert.NoError(t, err) 19 // 20 // h, err := bridge.WrapHeaders(map[string][]string{ 21 // "Host": []string{"example.com"}, 22 // "X-Two-Things": []string{"first", "second"}, 23 // }) 24 // assert.NoError(t, err) 25 26 body := `GET / HTTP/1.1 27 Host: example.com 28 Accept: * 29 30 this is the content` 31 32 request := Request{bridge.New(bridgetest.Mock(t, []bridgetest.MockStep{ 33 {"kong.service.request.set_scheme", bridge.WrapString("https"), nil}, 34 {"kong.service.request.set_path", bridge.WrapString("/login/orout"), nil}, 35 {"kong.service.request.set_raw_query", bridge.WrapString("ref=wayback&trail=faint"), nil}, 36 {"kong.service.request.set_method", bridge.WrapString("POST"), nil}, 37 // {"kong.service.request.set_query", q, nil}, 38 {"kong.service.request.set_header", &kong_plugin_protocol.KV{K: "Host", V: structpb.NewStringValue("example.com")}, nil}, 39 {"kong.service.request.add_header", &kong_plugin_protocol.KV{K: "Host", V: structpb.NewStringValue("example.com")}, nil}, 40 {"kong.service.request.clear_header", bridge.WrapString("CORS"), nil}, 41 // {"kong.service.request.set_headers", bridge.WrapString(""), nil}, 42 {"kong.service.request.set_raw_body", bridge.WrapString(body), nil}, 43 }))} 44 45 assert.NoError(t, request.SetScheme("https")) 46 assert.NoError(t, request.SetPath("/login/orout")) 47 assert.NoError(t, request.SetRawQuery("ref=wayback&trail=faint")) 48 assert.NoError(t, request.SetMethod("POST")) 49 // assert.NoError(t, request.SetQuery(map[string][]string{ 50 // "ref": []string{"wayback"}, 51 // "trail": []string{"faint"}, 52 // })) 53 assert.NoError(t, request.SetHeader("Host", "example.com")) 54 assert.NoError(t, request.AddHeader("Host", "example.com")) 55 assert.NoError(t, request.ClearHeader("CORS")) 56 // assert.NoError(t, request.SetHeaders(map[string][]string{ 57 // "Host": []string{"example.com"}, 58 // "X-Two-Things": []string{"first", "second"}, 59 // })) 60 assert.NoError(t, request.SetRawBody(body)) 61 62 }