Skip to content

Commit c11d9a3

Browse files
committed
add unit test
1 parent e914390 commit c11d9a3

File tree

2 files changed

+46
-0
lines changed

2 files changed

+46
-0
lines changed

coderd/templates_test.go

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -814,6 +814,46 @@ func TestTemplatesByOrganization(t *testing.T) {
814814
require.False(t, templates[0].Deprecated)
815815
require.Empty(t, templates[0].DeprecationMessage)
816816
})
817+
818+
t.Run("ListByAuthor", func(t *testing.T) {
819+
t.Parallel()
820+
client := coderdtest.New(t, nil)
821+
owner := coderdtest.CreateFirstUser(t, client)
822+
adminAlpha, adminAlphaData := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID, rbac.RoleTemplateAdmin())
823+
adminBravo, adminBravoData := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID, rbac.RoleTemplateAdmin())
824+
adminCharlie, _ := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID, rbac.RoleTemplateAdmin())
825+
826+
versionA := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, nil)
827+
versionB := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, nil)
828+
versionC := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, nil)
829+
foo := coderdtest.CreateTemplate(t, adminAlpha, owner.OrganizationID, versionA.ID, func(request *codersdk.CreateTemplateRequest) {
830+
request.Name = "foo"
831+
})
832+
bar := coderdtest.CreateTemplate(t, adminBravo, owner.OrganizationID, versionB.ID, func(request *codersdk.CreateTemplateRequest) {
833+
request.Name = "bar"
834+
})
835+
_ = coderdtest.CreateTemplate(t, adminCharlie, owner.OrganizationID, versionC.ID, func(request *codersdk.CreateTemplateRequest) {
836+
request.Name = "baz"
837+
})
838+
839+
ctx := testutil.Context(t, testutil.WaitLong)
840+
841+
// List alpha
842+
alpha, err := client.Templates(ctx, codersdk.TemplateFilter{
843+
AuthorUsername: adminAlphaData.Username,
844+
})
845+
require.NoError(t, err)
846+
require.Len(t, alpha, 1)
847+
require.Equal(t, foo.ID, alpha[0].ID)
848+
849+
// List bravo
850+
bravo, err := client.Templates(ctx, codersdk.TemplateFilter{
851+
AuthorUsername: adminBravoData.Username,
852+
})
853+
require.NoError(t, err)
854+
require.Len(t, bravo, 1)
855+
require.Equal(t, bar.ID, bravo[0].ID)
856+
})
817857
}
818858

819859
func TestTemplateByOrganizationAndName(t *testing.T) {

codersdk/organizations.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -541,6 +541,7 @@ type TemplateFilter struct {
541541
OrganizationID uuid.UUID `typescript:"-"`
542542
ExactName string `typescript:"-"`
543543
FuzzyName string `typescript:"-"`
544+
AuthorUsername string `typescript:"-"`
544545
SearchQuery string `json:"q,omitempty"`
545546
}
546547

@@ -562,6 +563,11 @@ func (f TemplateFilter) asRequestOption() RequestOption {
562563
if f.FuzzyName != "" {
563564
params = append(params, fmt.Sprintf("name:%q", f.FuzzyName))
564565
}
566+
567+
if f.AuthorUsername != "" {
568+
params = append(params, fmt.Sprintf("author:%q", f.AuthorUsername))
569+
}
570+
565571
if f.SearchQuery != "" {
566572
params = append(params, f.SearchQuery)
567573
}

0 commit comments

Comments
 (0)