photoprism/internal/api/connect_test.go
Michael Mayer 9219d14d3f API: Export request limit helpers and align test guidance
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-03-08 13:49:50 +01:00

57 lines
1.6 KiB
Go

package api
import (
"net/http"
"strings"
"testing"
"github.com/stretchr/testify/assert"
)
func TestConnect(t *testing.T) {
t.Run("NoNameOrToken", func(t *testing.T) {
app, router, _ := NewApiTest()
Connect(router)
r := PerformRequest(app, "PUT", "/api/v1/connect")
assert.Equal(t, 404, r.Code)
})
t.Run("NoName", func(t *testing.T) {
app, router, _ := NewApiTest()
Connect(router)
r := PerformRequest(app, "PUT", "/api/v1/connect/")
assert.Equal(t, 404, r.Code)
})
t.Run("NoToken", func(t *testing.T) {
app, router, _ := NewApiTest()
Connect(router)
r := PerformRequest(app, "PUT", "/api/v1/connect/hub/")
assert.Equal(t, 307, r.Code)
})
t.Run("InvalidUrl", func(t *testing.T) {
app, router, _ := NewApiTest()
Connect(router)
r := PerformRequest(app, "PUT", "/api/v1/connect/hub/a")
assert.Equal(t, 404, r.Code)
})
t.Run("Redirect", func(t *testing.T) {
app, router, _ := NewApiTest()
Connect(router)
r := PerformRequest(app, "PUT", "/api/v1/connect/hub/foobar123")
assert.NotEqual(t, 301, r.Code)
})
t.Run("HasNameAndToken", func(t *testing.T) {
app, router, _ := NewApiTest()
Connect(router)
r := PerformRequestWithBody(app, "PUT", "/api/v1/connect/hub/", `{"Token": "foobar123"}`)
assert.NotEqual(t, 200, r.Code)
})
t.Run("RequestTooLarge", func(t *testing.T) {
app, router, _ := NewApiTest()
Connect(router)
body := `{"Token":"` + strings.Repeat("a", int(MaxAuthRequestBytes)) + `"}`
r := PerformRequestWithBody(app, http.MethodPut, "/api/v1/connect/hub", body)
assert.Equal(t, http.StatusRequestEntityTooLarge, r.Code)
})
}