Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit585e16c

Browse files
f0sselkylecarbs
authored andcommitted
fix: support substring search on workspace name (#2096)
1 parent8ee599c commit585e16c

File tree

4 files changed

+41
-5
lines changed

4 files changed

+41
-5
lines changed

‎coderd/database/databasefake/databasefake.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,7 @@ func (q *fakeQuerier) GetWorkspacesWithFilter(_ context.Context, arg database.Ge
330330
if!arg.Deleted&&workspace.Deleted {
331331
continue
332332
}
333-
ifarg.Name!=""&&workspace.Name!=arg.Name {
333+
ifarg.Name!=""&&!strings.Contains(workspace.Name,arg.Name) {
334334
continue
335335
}
336336
workspaces=append(workspaces,workspace)

‎coderd/database/queries.sql.go

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎coderd/database/queries/workspaces.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ WHERE
2828
owner_id= @owner_id
2929
ELSE true
3030
END
31-
-- Filter by name
31+
-- Filter by name, matching on substring
3232
AND CASE
3333
WHEN @name ::text!='' THEN
34-
LOWER(name)=LOWER(@name)
34+
LOWER(name)LIKE'%'||LOWER(@name)||'%'
3535
ELSE true
3636
END
3737
;

‎coderd/workspaces_test.go

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,42 @@ func TestWorkspaceByOwnerAndName(t *testing.T) {
232232
})
233233
}
234234

235+
funcTestWorkspaceFilter(t*testing.T) {
236+
t.Parallel()
237+
t.Run("Name",func(t*testing.T) {
238+
t.Parallel()
239+
client:=coderdtest.New(t,&coderdtest.Options{IncludeProvisionerD:true})
240+
user:=coderdtest.CreateFirstUser(t,client)
241+
version:=coderdtest.CreateTemplateVersion(t,client,user.OrganizationID,nil)
242+
coderdtest.AwaitTemplateVersionJob(t,client,version.ID)
243+
template:=coderdtest.CreateTemplate(t,client,user.OrganizationID,version.ID)
244+
workspace:=coderdtest.CreateWorkspace(t,client,user.OrganizationID,template.ID)
245+
246+
// full match
247+
ws,err:=client.Workspaces(context.Background(), codersdk.WorkspaceFilter{
248+
Name:workspace.Name,
249+
})
250+
require.NoError(t,err)
251+
require.Len(t,ws,1,workspace.Name)
252+
require.Equal(t,workspace.ID,ws[0].ID)
253+
254+
// partial match
255+
ws,err=client.Workspaces(context.Background(), codersdk.WorkspaceFilter{
256+
Name:workspace.Name[1 :len(workspace.Name)-2],
257+
})
258+
require.NoError(t,err)
259+
require.Len(t,ws,1)
260+
require.Equal(t,workspace.ID,ws[0].ID)
261+
262+
// no match
263+
ws,err=client.Workspaces(context.Background(), codersdk.WorkspaceFilter{
264+
Name:"$$$$",
265+
})
266+
require.NoError(t,err)
267+
require.Len(t,ws,0)
268+
})
269+
}
270+
235271
funcTestPostWorkspaceBuild(t*testing.T) {
236272
t.Parallel()
237273
t.Run("NoTemplateVersion",func(t*testing.T) {

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp