Add optimistic membership lifecycle
verify / verify (push) Successful in 3m38s

This commit is contained in:
2026-09-03 23:22:19 -04:00
parent fe6bd94c9a
commit 59827bf641
10 changed files with 368 additions and 20 deletions
+13
View File
@@ -47,6 +47,19 @@ func TestInvitationFailsClosed(t *testing.T) {
}
}
func TestOptimisticMembershipLifecycleFailsClosedWithoutRepositorySupport(t *testing.T) {
service, err := New(&repositoryStub{}, Options{OwnerRole: "organization.owner"})
if err != nil {
t.Fatal(err)
}
if err = service.ChangeMembershipStatus(t.Context(), MembershipStatusChange{OrganizationID: "organization-1234", UserID: "user-12345678", ExpectedStatus: "active", Status: "suspended", ActorUserID: "user-87654321", RequestID: "request-suspend"}); !errors.Is(err, ErrMembershipLifecycleUnsupported) {
t.Fatalf("status change err=%v", err)
}
if err = service.RemoveMembershipIfCurrent(t.Context(), MembershipRemoval{OrganizationID: "organization-1234", UserID: "user-12345678", ExpectedStatus: "active", ActorUserID: "user-87654321", RequestID: "request-remove"}); !errors.Is(err, ErrMembershipLifecycleUnsupported) {
t.Fatalf("removal err=%v", err)
}
}
type repositoryStub struct {
organization Organization
invitation Invitation