@@ -6,11 +6,13 @@ import (
6
6
"testing"
7
7
"time"
8
8
9
+ "github.com/stretchr/testify/assert"
9
10
"github.com/stretchr/testify/require"
10
11
11
12
"github.com/coder/coder/coderd/database"
12
13
"github.com/coder/coder/coderd/rbac"
13
14
"github.com/coder/coder/coderd/searchquery"
15
+ "github.com/coder/coder/coderd/util/ptr"
14
16
"github.com/coder/coder/codersdk"
15
17
)
16
18
@@ -148,17 +150,18 @@ func TestSearchWorkspace(t *testing.T) {
148
150
c := c
149
151
t .Run (c .Name , func (t * testing.T ) {
150
152
t .Parallel ()
151
- values , _ , errs := searchquery .Workspaces (c .Query , codersdk.Pagination {}, 0 )
153
+ values , postFilter , errs := searchquery .Workspaces (c .Query , codersdk.Pagination {}, 0 )
152
154
if c .ExpectedErrorContains != "" {
153
- require .True (t , len (errs ) > 0 , "expect some errors" )
155
+ assert .True (t , len (errs ) > 0 , "expect some errors" )
154
156
var s strings.Builder
155
157
for _ , err := range errs {
156
158
_ , _ = s .WriteString (fmt .Sprintf ("%s: %s\n " , err .Field , err .Detail ))
157
159
}
158
- require .Contains (t , s .String (), c .ExpectedErrorContains )
160
+ assert .Contains (t , s .String (), c .ExpectedErrorContains )
159
161
} else {
160
- require .Len (t , errs , 0 , "expected no error" )
161
- require .Equal (t , c .Expected , values , "expected values" )
162
+ assert .Empty (t , postFilter )
163
+ assert .Len (t , errs , 0 , "expected no error" )
164
+ assert .Equal (t , c .Expected , values , "expected values" )
162
165
}
163
166
})
164
167
}
@@ -171,6 +174,47 @@ func TestSearchWorkspace(t *testing.T) {
171
174
require .Empty (t , errs )
172
175
require .Equal (t , int64 (timeout .Seconds ()), values .AgentInactiveDisconnectTimeoutSeconds )
173
176
})
177
+
178
+ t .Run ("TestSearchWorkspacePostFilter" , func (t * testing.T ) {
179
+ t .Parallel ()
180
+ testCases := []struct {
181
+ Name string
182
+ Query string
183
+ Expected searchquery.PostFilter
184
+ }{
185
+ {
186
+ Name : "Empty" ,
187
+ Query : "" ,
188
+ Expected : searchquery.PostFilter {},
189
+ },
190
+ {
191
+ Name : "DeletingBy" ,
192
+ Query : "deleting_by:2023-06-09" ,
193
+ Expected : searchquery.PostFilter {
194
+ DeletingBy : ptr .Ref (time .Date (
195
+ 2023 , 06 , 9 , 0 , 0 , 0 , 0 , time .UTC )),
196
+ },
197
+ },
198
+ {
199
+ Name : "MultipleParams" ,
200
+ Query : "deleting_by:2023-06-09 name:workspace-name" ,
201
+ Expected : searchquery.PostFilter {
202
+ DeletingBy : ptr .Ref (time .Date (
203
+ 2023 , 06 , 9 , 0 , 0 , 0 , 0 , time .UTC )),
204
+ },
205
+ },
206
+ }
207
+
208
+ for _ , c := range testCases {
209
+ c := c
210
+ t .Run (c .Name , func (t * testing.T ) {
211
+ t .Parallel ()
212
+ _ , postFilter , errs := searchquery .Workspaces (c .Query , codersdk.Pagination {}, 0 )
213
+ assert .Len (t , errs , 0 , "expected no error" )
214
+ assert .Equal (t , c .Expected , postFilter , "expected values" )
215
+ })
216
+ }
217
+ })
174
218
}
175
219
176
220
func TestSearchAudit (t * testing.T ) {
@@ -342,3 +386,10 @@ func TestSearchUsers(t *testing.T) {
342
386
})
343
387
}
344
388
}
389
+
390
+ func must [T any ](value T , err error ) T {
391
+ if err != nil {
392
+ panic (err )
393
+ }
394
+ return value
395
+ }
0 commit comments