mirror of
https://codeberg.org/Codeberg/pages-server.git
synced 2024-11-18 10:29:43 +00:00
6c63b66ce4
we have big functions that handle all stuff ... we should split this into smaler chuncks so we could test them seperate and make clear cuts in what happens where Reviewed-on: https://codeberg.org/Codeberg/pages-server/pulls/135
48 lines
1.4 KiB
Go
48 lines
1.4 KiB
Go
package handler
|
|
|
|
import (
|
|
"net/http/httptest"
|
|
"testing"
|
|
"time"
|
|
|
|
"codeberg.org/codeberg/pages/server/cache"
|
|
"codeberg.org/codeberg/pages/server/gitea"
|
|
"github.com/rs/zerolog/log"
|
|
)
|
|
|
|
func TestHandlerPerformance(t *testing.T) {
|
|
giteaClient, _ := gitea.NewClient("https://codeberg.org", "", cache.NewKeyValueCache(), false, false)
|
|
testHandler := Handler(
|
|
"codeberg.page", "raw.codeberg.org",
|
|
giteaClient,
|
|
"https://docs.codeberg.org/pages/raw-content/",
|
|
[]string{"/.well-known/acme-challenge/"},
|
|
[]string{"raw.codeberg.org", "fonts.codeberg.org", "design.codeberg.org"},
|
|
cache.NewKeyValueCache(),
|
|
cache.NewKeyValueCache(),
|
|
)
|
|
|
|
testCase := func(uri string, status int) {
|
|
req := httptest.NewRequest("GET", uri, nil)
|
|
w := httptest.NewRecorder()
|
|
|
|
log.Printf("Start: %v\n", time.Now())
|
|
start := time.Now()
|
|
testHandler(w, req)
|
|
end := time.Now()
|
|
log.Printf("Done: %v\n", time.Now())
|
|
|
|
resp := w.Result()
|
|
|
|
if resp.StatusCode != status {
|
|
t.Errorf("request failed with status code %d", resp.StatusCode)
|
|
} else {
|
|
t.Logf("request took %d milliseconds", end.Sub(start).Milliseconds())
|
|
}
|
|
}
|
|
|
|
testCase("https://mondstern.codeberg.page/", 424) // TODO: expect 200
|
|
testCase("https://mondstern.codeberg.page/", 424) // TODO: expect 200
|
|
testCase("https://example.momar.xyz/", 424) // TODO: expect 200
|
|
testCase("https://codeberg.page/", 424) // TODO: expect 200
|
|
}
|