Skip to content

Commit 607311f

Browse files
committed
chore: add additional org delete trigger tests
1 parent 041630c commit 607311f

File tree

1 file changed

+86
-0
lines changed

1 file changed

+86
-0
lines changed

coderd/database/querier_test.go

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2925,6 +2925,7 @@ func TestOrganizationDeleteTrigger(t *testing.T) {
29252925
}
29262926

29272927
t.Run("WorkspaceExists", func(t *testing.T) {
2928+
t.Parallel()
29282929
db, _ := dbtestutil.NewDB(t)
29292930

29302931
orgA := dbfake.Organization(t, db).Do()
@@ -2947,6 +2948,91 @@ func TestOrganizationDeleteTrigger(t *testing.T) {
29472948
require.ErrorContains(t, err, "has 1 workspaces")
29482949
require.ErrorContains(t, err, "1 templates")
29492950
})
2951+
2952+
t.Run("TemplateExists", func(t *testing.T) {
2953+
t.Parallel()
2954+
db, _ := dbtestutil.NewDB(t)
2955+
2956+
orgA := dbfake.Organization(t, db).Do()
2957+
2958+
dbgen.Template(t, db, database.Template{
2959+
OrganizationID: orgA.Org.ID,
2960+
})
2961+
2962+
ctx := testutil.Context(t, testutil.WaitShort)
2963+
err := db.UpdateOrganizationDeletedByID(ctx, database.UpdateOrganizationDeletedByIDParams{
2964+
UpdatedAt: dbtime.Now(),
2965+
ID: orgA.Org.ID,
2966+
})
2967+
require.Error(t, err)
2968+
// cannot delete organization: organization has 1 workspaces and 1 templates that must be deleted first
2969+
require.ErrorContains(t, err, "cannot delete organization")
2970+
require.ErrorContains(t, err, "has 0 workspaces")
2971+
require.ErrorContains(t, err, "1 templates")
2972+
})
2973+
2974+
t.Run("ProvisionerKeyExists", func(t *testing.T) {
2975+
t.Parallel()
2976+
db, _ := dbtestutil.NewDB(t)
2977+
2978+
orgA := dbfake.Organization(t, db).Do()
2979+
2980+
dbgen.ProvisionerKey(t, db, database.ProvisionerKey{
2981+
OrganizationID: orgA.Org.ID,
2982+
})
2983+
2984+
ctx := testutil.Context(t, testutil.WaitShort)
2985+
err := db.UpdateOrganizationDeletedByID(ctx, database.UpdateOrganizationDeletedByIDParams{
2986+
UpdatedAt: dbtime.Now(),
2987+
ID: orgA.Org.ID,
2988+
})
2989+
require.Error(t, err)
2990+
// cannot delete organization: organization has 1 provisioner keys that must be deleted first
2991+
require.ErrorContains(t, err, "cannot delete organization")
2992+
require.ErrorContains(t, err, "has 1 provisioner keys")
2993+
})
2994+
2995+
t.Run("GroupExists", func(t *testing.T) {
2996+
t.Parallel()
2997+
db, _ := dbtestutil.NewDB(t)
2998+
2999+
orgA := dbfake.Organization(t, db).Do()
3000+
3001+
dbgen.Group(t, db, database.Group{
3002+
OrganizationID: orgA.Org.ID,
3003+
})
3004+
3005+
ctx := testutil.Context(t, testutil.WaitShort)
3006+
err := db.UpdateOrganizationDeletedByID(ctx, database.UpdateOrganizationDeletedByIDParams{
3007+
UpdatedAt: dbtime.Now(),
3008+
ID: orgA.Org.ID,
3009+
})
3010+
require.Error(t, err)
3011+
// cannot delete organization: organization has 1 groups that must be deleted first
3012+
require.ErrorContains(t, err, "cannot delete organization")
3013+
require.ErrorContains(t, err, "has 1 groups")
3014+
})
3015+
3016+
t.Run("MemberExists", func(t *testing.T) {
3017+
t.Parallel()
3018+
db, _ := dbtestutil.NewDB(t)
3019+
3020+
orgA := dbfake.Organization(t, db).Do()
3021+
3022+
dbgen.OrganizationMember(t, db, database.OrganizationMember{
3023+
OrganizationID: orgA.Org.ID,
3024+
})
3025+
3026+
ctx := testutil.Context(t, testutil.WaitShort)
3027+
err := db.UpdateOrganizationDeletedByID(ctx, database.UpdateOrganizationDeletedByIDParams{
3028+
UpdatedAt: dbtime.Now(),
3029+
ID: orgA.Org.ID,
3030+
})
3031+
require.Error(t, err)
3032+
// cannot delete organization: organization has 1 members that must be deleted first
3033+
require.ErrorContains(t, err, "cannot delete organization")
3034+
require.ErrorContains(t, err, "has 1 members")
3035+
})
29503036
}
29513037

29523038
func requireUsersMatch(t testing.TB, expected []database.User, found []database.GetUsersRow, msg string) {

0 commit comments

Comments
 (0)