.examples
.github
alerting
api
api.go
api_test.go
badge.go
badge_test.go
cache.go
chart.go
chart_test.go
config.go
config_test.go
custom_css.go
endpoint_status.go
endpoint_status_test.go
external_endpoint.go
external_endpoint_test.go
spa.go
spa_test.go
util.go
util_test.go
client
config
controller
docs
jsonpath
metrics
pattern
security
storage
test
testdata
watchdog
web
.dockerignore
.gitattributes
.gitignore
Dockerfile
LICENSE
Makefile
README.md
config.yaml
go.mod
go.sum
main.go
47 lines
1.4 KiB
Go
47 lines
1.4 KiB
Go
package api
|
|
|
|
import (
|
|
"io"
|
|
"net/http"
|
|
"testing"
|
|
|
|
"github.com/TwiN/gatus/v5/security"
|
|
"github.com/gofiber/fiber/v2"
|
|
)
|
|
|
|
func TestConfigHandler_ServeHTTP(t *testing.T) {
|
|
securityConfig := &security.Config{
|
|
OIDC: &security.OIDCConfig{
|
|
IssuerURL: "https://sso.gatus.io/",
|
|
RedirectURL: "http://localhost:80/authorization-code/callback",
|
|
Scopes: []string{"openid"},
|
|
AllowedSubjects: []string{"user1@example.com"},
|
|
},
|
|
}
|
|
handler := ConfigHandler{securityConfig: securityConfig}
|
|
// Create a fake router. We're doing this because I need the gate to be initialized.
|
|
app := fiber.New()
|
|
app.Get("/api/v1/config", handler.GetConfig)
|
|
err := securityConfig.ApplySecurityMiddleware(app)
|
|
if err != nil {
|
|
t.Error("expected err to be nil, but was", err)
|
|
}
|
|
// Test the config handler
|
|
request, _ := http.NewRequest("GET", "/api/v1/config", http.NoBody)
|
|
response, err := app.Test(request)
|
|
if err != nil {
|
|
t.Error("expected err to be nil, but was", err)
|
|
}
|
|
defer response.Body.Close()
|
|
if response.StatusCode != http.StatusOK {
|
|
t.Error("expected code to be 200, but was", response.StatusCode)
|
|
}
|
|
body, err := io.ReadAll(response.Body)
|
|
if err != nil {
|
|
t.Error("expected err to be nil, but was", err)
|
|
}
|
|
if string(body) != `{"oidc":true,"authenticated":false}` {
|
|
t.Error("expected body to be `{\"oidc\":true,\"authenticated\":false}`, but was", string(body))
|
|
}
|
|
}
|