@@ -2925,6 +2925,7 @@ func TestOrganizationDeleteTrigger(t *testing.T) {
2925
2925
}
2926
2926
2927
2927
t .Run ("WorkspaceExists" , func (t * testing.T ) {
2928
+ t .Parallel ()
2928
2929
db , _ := dbtestutil .NewDB (t )
2929
2930
2930
2931
orgA := dbfake .Organization (t , db ).Do ()
@@ -2947,6 +2948,91 @@ func TestOrganizationDeleteTrigger(t *testing.T) {
2947
2948
require .ErrorContains (t , err , "has 1 workspaces" )
2948
2949
require .ErrorContains (t , err , "1 templates" )
2949
2950
})
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
+ })
2950
3036
}
2951
3037
2952
3038
func requireUsersMatch (t testing.TB , expected []database.User , found []database.GetUsersRow , msg string ) {
0 commit comments