@@ -859,6 +859,78 @@ func (s *MethodTestSuite) TestOrganization() {
859
859
rbac .ResourceAssignOrgRole .InOrg (o .ID ),policy .ActionAssign ,
860
860
rbac .ResourceOrganizationMember .InOrg (o .ID ).WithID (u .ID ),policy .ActionCreate )
861
861
}))
862
+ s .Run ("InsertPreset" ,s .Subtest (func (db database.Store ,check * expects ) {
863
+ org := dbgen .Organization (s .T (),db , database.Organization {})
864
+ user := dbgen .User (s .T (),db , database.User {})
865
+ template := dbgen .Template (s .T (),db , database.Template {
866
+ CreatedBy :user .ID ,
867
+ OrganizationID :org .ID ,
868
+ })
869
+ templateVersion := dbgen .TemplateVersion (s .T (),db , database.TemplateVersion {
870
+ TemplateID : uuid.NullUUID {UUID :template .ID ,Valid :true },
871
+ OrganizationID :org .ID ,
872
+ CreatedBy :user .ID ,
873
+ })
874
+ workspace := dbgen .Workspace (s .T (),db , database.WorkspaceTable {
875
+ OrganizationID :org .ID ,
876
+ OwnerID :user .ID ,
877
+ TemplateID :template .ID ,
878
+ })
879
+ job := dbgen .ProvisionerJob (s .T (),db ,nil , database.ProvisionerJob {
880
+ OrganizationID :org .ID ,
881
+ })
882
+ workspaceBuild := dbgen .WorkspaceBuild (s .T (),db , database.WorkspaceBuild {
883
+ WorkspaceID :workspace .ID ,
884
+ TemplateVersionID :templateVersion .ID ,
885
+ InitiatorID :user .ID ,
886
+ JobID :job .ID ,
887
+ })
888
+ insertPresetParams := database.InsertPresetParams {
889
+ ID :uuid .New (),
890
+ TemplateVersionID :workspaceBuild .TemplateVersionID ,
891
+ Name :"test" ,
892
+ }
893
+ check .Args (insertPresetParams ).Asserts (rbac .ResourceTemplate ,policy .ActionUpdate )
894
+ }))
895
+ s .Run ("InsertPresetParameters" ,s .Subtest (func (db database.Store ,check * expects ) {
896
+ org := dbgen .Organization (s .T (),db , database.Organization {})
897
+ user := dbgen .User (s .T (),db , database.User {})
898
+ template := dbgen .Template (s .T (),db , database.Template {
899
+ CreatedBy :user .ID ,
900
+ OrganizationID :org .ID ,
901
+ })
902
+ templateVersion := dbgen .TemplateVersion (s .T (),db , database.TemplateVersion {
903
+ TemplateID : uuid.NullUUID {UUID :template .ID ,Valid :true },
904
+ OrganizationID :org .ID ,
905
+ CreatedBy :user .ID ,
906
+ })
907
+ workspace := dbgen .Workspace (s .T (),db , database.WorkspaceTable {
908
+ OrganizationID :org .ID ,
909
+ OwnerID :user .ID ,
910
+ TemplateID :template .ID ,
911
+ })
912
+ job := dbgen .ProvisionerJob (s .T (),db ,nil , database.ProvisionerJob {
913
+ OrganizationID :org .ID ,
914
+ })
915
+ workspaceBuild := dbgen .WorkspaceBuild (s .T (),db , database.WorkspaceBuild {
916
+ WorkspaceID :workspace .ID ,
917
+ TemplateVersionID :templateVersion .ID ,
918
+ InitiatorID :user .ID ,
919
+ JobID :job .ID ,
920
+ })
921
+ insertPresetParams := database.InsertPresetParams {
922
+ TemplateVersionID :workspaceBuild .TemplateVersionID ,
923
+ Name :"test" ,
924
+ }
925
+ preset ,err := db .InsertPreset (context .Background (),insertPresetParams )
926
+ require .NoError (s .T (),err )
927
+ insertPresetParametersParams := database.InsertPresetParametersParams {
928
+ TemplateVersionPresetID :preset .ID ,
929
+ Names : []string {"test" },
930
+ Values : []string {"test" },
931
+ }
932
+ check .Args (insertPresetParametersParams ).Asserts (rbac .ResourceTemplate ,policy .ActionUpdate )
933
+ }))
862
934
s .Run ("DeleteOrganizationMember" ,s .Subtest (func (db database.Store ,check * expects ) {
863
935
o := dbgen .Organization (s .T (),db , database.Organization {})
864
936
u := dbgen .User (s .T (),db , database.User {})
@@ -3695,6 +3767,98 @@ func (s *MethodTestSuite) TestSystemFunctions() {
3695
3767
ErrorsWithInMemDB (sql .ErrNoRows ).
3696
3768
Returns ([]database.ParameterSchema {})
3697
3769
}))
3770
+ s .Run ("GetPresetByWorkspaceBuildID" ,s .Subtest (func (db database.Store ,check * expects ) {
3771
+ org := dbgen .Organization (s .T (),db , database.Organization {})
3772
+ user := dbgen .User (s .T (),db , database.User {})
3773
+ template := dbgen .Template (s .T (),db , database.Template {
3774
+ CreatedBy :user .ID ,
3775
+ OrganizationID :org .ID ,
3776
+ })
3777
+ templateVersion := dbgen .TemplateVersion (s .T (),db , database.TemplateVersion {
3778
+ TemplateID : uuid.NullUUID {UUID :template .ID ,Valid :true },
3779
+ OrganizationID :org .ID ,
3780
+ CreatedBy :user .ID ,
3781
+ })
3782
+ preset ,err := db .InsertPreset (context .Background (), database.InsertPresetParams {
3783
+ TemplateVersionID :templateVersion .ID ,
3784
+ Name :"test" ,
3785
+ })
3786
+ require .NoError (s .T (),err )
3787
+ workspace := dbgen .Workspace (s .T (),db , database.WorkspaceTable {
3788
+ OrganizationID :org .ID ,
3789
+ OwnerID :user .ID ,
3790
+ TemplateID :template .ID ,
3791
+ })
3792
+ job := dbgen .ProvisionerJob (s .T (),db ,nil , database.ProvisionerJob {
3793
+ OrganizationID :org .ID ,
3794
+ })
3795
+ workspaceBuild := dbgen .WorkspaceBuild (s .T (),db , database.WorkspaceBuild {
3796
+ WorkspaceID :workspace .ID ,
3797
+ TemplateVersionID :templateVersion .ID ,
3798
+ TemplateVersionPresetID : uuid.NullUUID {UUID :preset .ID ,Valid :true },
3799
+ InitiatorID :user .ID ,
3800
+ JobID :job .ID ,
3801
+ })
3802
+ _ ,err = db .GetPresetByWorkspaceBuildID (context .Background (),workspaceBuild .ID )
3803
+ require .NoError (s .T (),err )
3804
+ check .Args (workspaceBuild .ID ).Asserts (rbac .ResourceTemplate ,policy .ActionRead )
3805
+ }))
3806
+ s .Run ("GetPresetParametersByTemplateVersionID" ,s .Subtest (func (db database.Store ,check * expects ) {
3807
+ ctx := context .Background ()
3808
+ org := dbgen .Organization (s .T (),db , database.Organization {})
3809
+ user := dbgen .User (s .T (),db , database.User {})
3810
+ template := dbgen .Template (s .T (),db , database.Template {
3811
+ CreatedBy :user .ID ,
3812
+ OrganizationID :org .ID ,
3813
+ })
3814
+ templateVersion := dbgen .TemplateVersion (s .T (),db , database.TemplateVersion {
3815
+ TemplateID : uuid.NullUUID {UUID :template .ID ,Valid :true },
3816
+ OrganizationID :org .ID ,
3817
+ CreatedBy :user .ID ,
3818
+ })
3819
+ preset ,err := db .InsertPreset (ctx , database.InsertPresetParams {
3820
+ ID :uuid .New (),
3821
+ TemplateVersionID :templateVersion .ID ,
3822
+ Name :"test" ,
3823
+ })
3824
+ require .NoError (s .T (),err )
3825
+ _ ,err = db .InsertPresetParameters (ctx , database.InsertPresetParametersParams {
3826
+ ID :uuid .New (),
3827
+ TemplateVersionPresetID :preset .ID ,
3828
+ Names : []string {"test" },
3829
+ Values : []string {"test" },
3830
+ })
3831
+ require .NoError (s .T (),err )
3832
+ presetParameters ,err := db .GetPresetParametersByTemplateVersionID (ctx ,templateVersion .ID )
3833
+ require .NoError (s .T (),err )
3834
+
3835
+ check .Args (templateVersion .ID ).Asserts (template .RBACObject (),policy .ActionRead ).Returns (presetParameters )
3836
+ }))
3837
+ s .Run ("GetPresetsByTemplateVersionID" ,s .Subtest (func (db database.Store ,check * expects ) {
3838
+ ctx := context .Background ()
3839
+ org := dbgen .Organization (s .T (),db , database.Organization {})
3840
+ user := dbgen .User (s .T (),db , database.User {})
3841
+ template := dbgen .Template (s .T (),db , database.Template {
3842
+ CreatedBy :user .ID ,
3843
+ OrganizationID :org .ID ,
3844
+ })
3845
+ templateVersion := dbgen .TemplateVersion (s .T (),db , database.TemplateVersion {
3846
+ TemplateID : uuid.NullUUID {UUID :template .ID ,Valid :true },
3847
+ OrganizationID :org .ID ,
3848
+ CreatedBy :user .ID ,
3849
+ })
3850
+
3851
+ _ ,err := db .InsertPreset (ctx , database.InsertPresetParams {
3852
+ TemplateVersionID :templateVersion .ID ,
3853
+ Name :"test" ,
3854
+ })
3855
+ require .NoError (s .T (),err )
3856
+
3857
+ presets ,err := db .GetPresetsByTemplateVersionID (ctx ,templateVersion .ID )
3858
+ require .NoError (s .T (),err )
3859
+
3860
+ check .Args (templateVersion .ID ).Asserts (template .RBACObject (),policy .ActionRead ).Returns (presets )
3861
+ }))
3698
3862
s .Run ("GetWorkspaceAppsByAgentIDs" ,s .Subtest (func (db database.Store ,check * expects ) {
3699
3863
dbtestutil .DisableForeignKeysAndTriggers (s .T (),db )
3700
3864
aWs := dbgen .Workspace (s .T (),db , database.WorkspaceTable {})