mirror of
https://github.com/coder/coder.git
synced 2026-06-03 04:58:23 +00:00
feat: add last_used search params to workspaces (#9230)
* feat: add last_used search params to workspaces
This commit is contained in:
@@ -1447,6 +1447,62 @@ func TestWorkspaceFilterManual(t *testing.T) {
|
||||
require.Len(t, res.Workspaces, 1)
|
||||
require.NotNil(t, res.Workspaces[0].LockedAt)
|
||||
})
|
||||
|
||||
t.Run("LastUsed", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
client, _, api := coderdtest.NewWithAPI(t, &coderdtest.Options{
|
||||
IncludeProvisionerDaemon: true,
|
||||
})
|
||||
user := coderdtest.CreateFirstUser(t, client)
|
||||
authToken := uuid.NewString()
|
||||
version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, &echo.Responses{
|
||||
Parse: echo.ParseComplete,
|
||||
ProvisionPlan: echo.ProvisionComplete,
|
||||
ProvisionApply: echo.ProvisionApplyWithAgent(authToken),
|
||||
})
|
||||
template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
|
||||
_ = coderdtest.AwaitTemplateVersionJob(t, client, version.ID)
|
||||
|
||||
// update template with inactivity ttl
|
||||
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
|
||||
defer cancel()
|
||||
|
||||
now := database.Now()
|
||||
before := coderdtest.CreateWorkspace(t, client, user.OrganizationID, template.ID)
|
||||
_ = coderdtest.AwaitWorkspaceBuildJob(t, client, before.LatestBuild.ID)
|
||||
|
||||
after := coderdtest.CreateWorkspace(t, client, user.OrganizationID, template.ID)
|
||||
_ = coderdtest.AwaitWorkspaceBuildJob(t, client, after.LatestBuild.ID)
|
||||
|
||||
//nolint:gocritic // Unit testing context
|
||||
err := api.Database.UpdateWorkspaceLastUsedAt(dbauthz.AsSystemRestricted(ctx), database.UpdateWorkspaceLastUsedAtParams{
|
||||
ID: before.ID,
|
||||
LastUsedAt: now.UTC().Add(time.Hour * -1),
|
||||
})
|
||||
require.NoError(t, err)
|
||||
|
||||
// Unit testing context
|
||||
//nolint:gocritic // Unit testing context
|
||||
err = api.Database.UpdateWorkspaceLastUsedAt(dbauthz.AsSystemRestricted(ctx), database.UpdateWorkspaceLastUsedAtParams{
|
||||
ID: after.ID,
|
||||
LastUsedAt: now.UTC().Add(time.Hour * 1),
|
||||
})
|
||||
require.NoError(t, err)
|
||||
|
||||
beforeRes, err := client.Workspaces(ctx, codersdk.WorkspaceFilter{
|
||||
FilterQuery: fmt.Sprintf("last_used_before:%q", now.Format(time.RFC3339)),
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, beforeRes.Workspaces, 1)
|
||||
require.Equal(t, before.ID, beforeRes.Workspaces[0].ID)
|
||||
|
||||
afterRes, err := client.Workspaces(ctx, codersdk.WorkspaceFilter{
|
||||
FilterQuery: fmt.Sprintf("last_used_after:%q", now.Format(time.RFC3339)),
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, afterRes.Workspaces, 1)
|
||||
require.Equal(t, after.ID, afterRes.Workspaces[0].ID)
|
||||
})
|
||||
}
|
||||
|
||||
func TestOffsetLimit(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user