MCPcopy Index your code
hub / github.com/zalando/skipper / TestScript

Function TestScript

script/script_test.go:32–514  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

30}
31
32func TestScript(t *testing.T) {
33 for _, test := range []struct {
34 name string
35 opts LuaOptions
36 context testContext
37 expectedStateBag map[string]string
38 expectedRequestHeader http.Header
39 expectedResponseHeader http.Header
40 expectedOutgoingHost string
41 expectedURL string
42 expectedStatus int
43 expectedError error
44 }{
45 {
46 name: "state bag",
47 context: testContext{
48 script: `function request(ctx, params); ctx.state_bag["foo"] = "bar"; end`,
49 },
50 expectedStateBag: map[string]string{"foo": "bar"},
51 },
52 {
53 name: "get request header",
54 context: testContext{
55 script: `function request(ctx, params); ctx.state_bag["User-Agent"] = ctx.request.header["User-Agent"]; end`,
56 requestHeader: http.Header{"User-Agent": []string{"luatest/1.0"}},
57 },
58 expectedStateBag: map[string]string{"User-Agent": "luatest/1.0"},
59 },
60 {
61 name: "set request header",
62 context: testContext{
63 script: `function request(ctx, params); ctx.request.header["User-Agent"] = "skipper.lua/1.0"; end`,
64 },
65 expectedRequestHeader: http.Header{"User-Agent": []string{"skipper.lua/1.0"}},
66 },
67 {
68 name: "add request header",
69 context: testContext{
70 script: `function request(ctx, params)
71 ctx.request.header.add("Foo", "Bar")
72 ctx.request.header.add("Foo", "Baz")
73 end`,
74 },
75 expectedRequestHeader: http.Header{"Foo": []string{"Bar", "Baz"}},
76 },
77 {
78 name: "request header values",
79 context: testContext{
80 script: `function request(ctx, params)
81 ctx.request.header.add("Foo", "Bar")
82 ctx.request.header.add("Foo", "Baz")
83
84 ctx.request.header["Qux"] = table.concat(ctx.request.header.values("Foo"), ", ")
85 ctx.request.header["Absent-Length"] = table.getn(ctx.request.header.values("Absent"))
86 end`,
87 },
88 expectedRequestHeader: http.Header{
89 "Foo": []string{"Bar", "Baz"},

Callers

nothing calls this directly

Calls 8

runFilterFunction · 0.85
ErrorfMethod · 0.65
ErrorMethod · 0.65
RequestMethod · 0.65
ResponseMethod · 0.65
StateBagMethod · 0.65
OutgoingHostMethod · 0.65
StringMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…