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  }