package main import ( "testing" "github.com/kataras/iris/v12/httptest" ) func TestReadHeaders(t *testing.T) { app := newApp() e := httptest.New(t, app) expectedOKBody := `myHeaders: main.myHeaders{RequestID:"373713f0-6b4b-42ea-ab9f-e2e04bc38e73", Authentication:"Bearer my-token"}` tests := []struct { headers map[string]string code int body string }{ {headers: map[string]string{ "X-Request-Id": "373713f0-6b4b-42ea-ab9f-e2e04bc38e73", "Authentication": "Bearer my-token", }, code: 200, body: expectedOKBody}, {headers: map[string]string{ "x-request-id": "373713f0-6b4b-42ea-ab9f-e2e04bc38e73", "authentication": "Bearer my-token", }, code: 200, body: expectedOKBody}, {headers: map[string]string{ "X-Request-ID": "373713f0-6b4b-42ea-ab9f-e2e04bc38e73", "Authentication": "Bearer my-token", }, code: 200, body: expectedOKBody}, {headers: map[string]string{ "Authentication": "Bearer my-token", }, code: 500, body: "X-Request-Id is empty"}, {headers: map[string]string{ "X-Request-ID": "373713f0-6b4b-42ea-ab9f-e2e04bc38e73", }, code: 500, body: "Authentication is empty"}, {headers: map[string]string{}, code: 500, body: "X-Request-Id is empty (and 1 other error)"}, } for _, tt := range tests { e.GET("/").WithHeaders(tt.headers).Expect().Status(tt.code).Body().Equal(tt.body) } }