Files
Netis---JWT-naloga/internal/client/fetch_status_test.go
2026-03-12 20:09:16 +01:00

49 lines
1.1 KiB
Go

package client
import (
"context"
"net/http"
"net/http/httptest"
"testing"
"time"
appcrypto "netisjwt/internal/crypto"
"netisjwt/internal/jws"
"netisjwt/internal/statuslist"
)
func TestFetchAndVerifyStatus(t *testing.T) {
privatePEM, err := appcrypto.UstvariZasebniKljucECDSAP256PEM()
if err != nil {
t.Fatalf("key gen: %v", err)
}
list := statuslist.New()
list.Dodaj(false)
list.Dodaj(true)
tokenPath := "/api/status/demo/1"
var baseURL string
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
claims, err := jws.SestaviTrditve(baseURL+"/api/status/demo", list, 1, time.Now())
if err != nil {
t.Fatalf("build claims: %v", err)
}
token, err := jws.UstvariZetonIzPEM(privatePEM, claims)
if err != nil {
t.Fatalf("create token: %v", err)
}
_, _ = w.Write([]byte(token))
}))
defer server.Close()
baseURL = server.URL
value, err := PridobiInPreveriStatus(context.Background(), server.URL+tokenPath)
if err != nil {
t.Fatalf("fetch and verify: %v", err)
}
if !value {
t.Fatalf("expected true")
}
}