package web_test import ( "context" "net/http" "net/http/httptest" "strings" "testing" "github.com/jackc/pgx/v5/pgxpool" "github.com/stretchr/testify/require" ) func TestUnregisteredSubjectRedirectedToRegister(t *testing.T) { app := newAppAs(t, "unregistered-sub") truncateAll(t, rawPool(t)) rec := do(t, app, httptest.NewRequest(http.MethodGet, "/", nil)) require.Equal(t, http.StatusFound, rec.Code) require.Equal(t, "/register", rec.Header().Get("Location")) } func TestRegisterPageReachableWhenUnregistered(t *testing.T) { app := newAppAs(t, "unregistered-sub") truncateAll(t, rawPool(t)) rec := do(t, app, httptest.NewRequest(http.MethodGet, "/register", nil)) require.Equal(t, http.StatusOK, rec.Code, "/register is exempt from the gate") require.Contains(t, body(t, rec), "Complete your registration") } func TestRegisteredSubjectPassesThrough(t *testing.T) { app := newApp(t) // stubSubject resetDB(t, rawPool(t)) rec := do(t, app, httptest.NewRequest(http.MethodGet, "/", nil)) require.Equal(t, http.StatusOK, rec.Code) require.Contains(t, body(t, rec), "