Something went wrong. Try again.
Monorepo for Tangled forked from tangled.org/core
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233package spindle
import ( "fmt" "testing")
func TestRevokeAfterAFailedCollaboratorRowWriteRemovesAccess(t *testing.T) { env := newEnsureEnv(t) env.serve("repo") env.ensure(t)
if _, err := env.s.db.Exec(fmt.Sprintf(`create trigger fail_collaborator_row before insert on repo_collaborators when new.subject = '%s' begin select raise(abort, 'boom'); end`, testBob)); err != nil { t.Fatal(err) } env.grant(testBob) if _, err := env.s.ensureRepo(t.Context(), env.k, testRepoDid); err == nil { t.Fatal("setup: the sync survived a failing collaborator row write") } if _, err := env.s.db.Exec(`drop trigger fail_collaborator_row`); err != nil { t.Fatal(err) }
env.revoke(testBob) env.ensure(t)
env.wantNoPushFor(t, testBob) if rows := env.collaboratorRows(t); len(rows) != 0 { t.Fatalf("collaborator rows = %+v after the revoke", rows) }}