37 lines
939 B
Go
37 lines
939 B
Go
package errorx
|
|
|
|
import (
|
|
"context"
|
|
"net/http"
|
|
"testing"
|
|
|
|
sharingmodule "img_infinite_canvas/internal/modules/sharing"
|
|
)
|
|
|
|
func TestHandleShareInviteConflicts(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
err error
|
|
errorCode string
|
|
}{
|
|
{name: "self invite", err: sharingmodule.ErrSelfInvite, errorCode: "share.self_invite"},
|
|
{name: "member exists", err: sharingmodule.ErrMemberExists, errorCode: "share.member_exists"},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
status, body := Handle(context.Background(), tt.err)
|
|
if status != http.StatusConflict {
|
|
t.Fatalf("expected status %d, got %d", http.StatusConflict, status)
|
|
}
|
|
payload, ok := body.(map[string]any)
|
|
if !ok {
|
|
t.Fatalf("expected map response, got %T", body)
|
|
}
|
|
if payload["errorCode"] != tt.errorCode {
|
|
t.Fatalf("expected error code %q, got %v", tt.errorCode, payload["errorCode"])
|
|
}
|
|
})
|
|
}
|
|
}
|