@@ -18,6 +18,7 @@ import (
18
18
"github.com/coder/coder/v2/coderd/coderdtest"
19
19
"github.com/coder/coder/v2/coderd/database"
20
20
"github.com/coder/coder/v2/coderd/database/dbauthz"
21
+ "github.com/coder/coder/v2/coderd/database/dbtestutil"
21
22
"github.com/coder/coder/v2/coderd/database/dbtime"
22
23
"github.com/coder/coder/v2/coderd/notifications"
23
24
"github.com/coder/coder/v2/coderd/rbac"
@@ -612,6 +613,32 @@ func TestPatchTemplateMeta(t *testing.T) {
612
613
assert .Equal (t , database .AuditActionWrite , auditor .AuditLogs ()[4 ].Action )
613
614
})
614
615
616
+ t .Run ("AlreadyExists" , func (t * testing.T ) {
617
+ t .Parallel ()
618
+
619
+ if ! dbtestutil .WillUsePostgres () {
620
+ t .Skip ("This test requires Postgres constraints" )
621
+ }
622
+
623
+ ownerClient := coderdtest .New (t , nil )
624
+ owner := coderdtest .CreateFirstUser (t , ownerClient )
625
+ client , _ := coderdtest .CreateAnotherUser (t , ownerClient , owner .OrganizationID , rbac .ScopedRoleOrgTemplateAdmin (owner .OrganizationID ))
626
+
627
+ version := coderdtest .CreateTemplateVersion (t , client , owner .OrganizationID , nil )
628
+ version2 := coderdtest .CreateTemplateVersion (t , client , owner .OrganizationID , nil )
629
+ template := coderdtest .CreateTemplate (t , client , owner .OrganizationID , version .ID )
630
+ template2 := coderdtest .CreateTemplate (t , client , owner .OrganizationID , version2 .ID )
631
+
632
+ ctx := testutil .Context (t , testutil .WaitLong )
633
+
634
+ _ , err := client .UpdateTemplateMeta (ctx , template .ID , codersdk.UpdateTemplateMeta {
635
+ Name : template2 .Name ,
636
+ })
637
+ var apiErr * codersdk.Error
638
+ require .ErrorAs (t , err , & apiErr )
639
+ require .Equal (t , http .StatusConflict , apiErr .StatusCode ())
640
+ })
641
+
615
642
t .Run ("AGPL_Deprecated" , func (t * testing.T ) {
616
643
t .Parallel ()
617
644
0 commit comments