mirror of
https://github.com/kataras/iris.git
synced 2025-01-23 18:51:03 +01:00
0f113dfcda
- Remove the context.Context interface and export the *context, the iris.Context now points to the pointer\nSupport compression and rate limiting in the FileServer\nBit of code organisation Former-commit-id: ad1c61bf968059510c6be9e7f2cceec7da70ba17
64 lines
1.6 KiB
Go
64 lines
1.6 KiB
Go
package requestid_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/kataras/iris/v12"
|
|
"github.com/kataras/iris/v12/context"
|
|
"github.com/kataras/iris/v12/httptest"
|
|
"github.com/kataras/iris/v12/middleware/requestid"
|
|
)
|
|
|
|
func TestRequestID(t *testing.T) {
|
|
app := iris.New()
|
|
h := func(ctx iris.Context) {
|
|
ctx.WriteString(requestid.Get(ctx))
|
|
}
|
|
|
|
def := app.Party("/default")
|
|
{
|
|
def.Use(requestid.New())
|
|
def.Get("/", h)
|
|
}
|
|
|
|
const expectedCustomID = "my_id"
|
|
custom := app.Party("/custom")
|
|
{
|
|
customGen := func(ctx *context.Context) string {
|
|
return expectedCustomID
|
|
}
|
|
|
|
custom.Use(requestid.New(customGen))
|
|
custom.Get("/", h)
|
|
}
|
|
|
|
const expectedErrMsg = "no id"
|
|
customWithErr := app.Party("/custom_err")
|
|
{
|
|
customGen := func(ctx *context.Context) string {
|
|
ctx.StopWithText(iris.StatusUnauthorized, expectedErrMsg)
|
|
return ""
|
|
}
|
|
|
|
customWithErr.Use(requestid.New(customGen))
|
|
customWithErr.Get("/", h)
|
|
}
|
|
|
|
const expectedCustomIDFromOtherMiddleware = "my custom id"
|
|
changeID := app.Party("/custom_change_id")
|
|
{
|
|
changeID.Use(func(ctx iris.Context) {
|
|
ctx.SetID(expectedCustomIDFromOtherMiddleware)
|
|
ctx.Next()
|
|
})
|
|
changeID.Use(requestid.New())
|
|
changeID.Get("/", h)
|
|
}
|
|
|
|
e := httptest.New(t, app)
|
|
e.GET("/default").Expect().Status(httptest.StatusOK).Body().NotEmpty()
|
|
e.GET("/custom").Expect().Status(httptest.StatusOK).Body().Equal(expectedCustomID)
|
|
e.GET("/custom_err").Expect().Status(httptest.StatusUnauthorized).Body().Equal(expectedErrMsg)
|
|
e.GET("/custom_change_id").Expect().Status(httptest.StatusOK).Body().Equal(expectedCustomIDFromOtherMiddleware)
|
|
}
|