fix: always show a newly created workspace at the top of the list (#6984)

Fixes #5795.
This commit is contained in:
Kyle Carberry 2023-04-04 08:24:04 -05:00 committed by GitHub
parent 46f42ea9ac
commit c12bc39821
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 14 additions and 9 deletions

View File

@ -3361,6 +3361,7 @@ func (q *fakeQuerier) InsertWorkspace(_ context.Context, arg database.InsertWork
Name: arg.Name,
AutostartSchedule: arg.AutostartSchedule,
Ttl: arg.Ttl,
LastUsedAt: arg.LastUsedAt,
}
q.workspaces = append(q.workspaces, workspace)
return workspace, nil

View File

@ -145,6 +145,7 @@ func Workspace(t testing.TB, db database.Store, orig database.Workspace) databas
UpdatedAt: takeFirst(orig.UpdatedAt, database.Now()),
OrganizationID: takeFirst(orig.OrganizationID, uuid.New()),
TemplateID: takeFirst(orig.TemplateID, uuid.New()),
LastUsedAt: takeFirst(orig.LastUsedAt, database.Now()),
Name: takeFirst(orig.Name, namesgenerator.GetRandomName(1)),
AutostartSchedule: orig.AutostartSchedule,
Ttl: orig.Ttl,

View File

@ -8014,10 +8014,11 @@ INSERT INTO
template_id,
name,
autostart_schedule,
ttl
ttl,
last_used_at
)
VALUES
($1, $2, $3, $4, $5, $6, $7, $8, $9) RETURNING id, created_at, updated_at, owner_id, organization_id, template_id, deleted, name, autostart_schedule, ttl, last_used_at
($1, $2, $3, $4, $5, $6, $7, $8, $9, $10) RETURNING id, created_at, updated_at, owner_id, organization_id, template_id, deleted, name, autostart_schedule, ttl, last_used_at
`
type InsertWorkspaceParams struct {
@ -8030,6 +8031,7 @@ type InsertWorkspaceParams struct {
Name string `db:"name" json:"name"`
AutostartSchedule sql.NullString `db:"autostart_schedule" json:"autostart_schedule"`
Ttl sql.NullInt64 `db:"ttl" json:"ttl"`
LastUsedAt time.Time `db:"last_used_at" json:"last_used_at"`
}
func (q *sqlQuerier) InsertWorkspace(ctx context.Context, arg InsertWorkspaceParams) (Workspace, error) {
@ -8043,6 +8045,7 @@ func (q *sqlQuerier) InsertWorkspace(ctx context.Context, arg InsertWorkspacePar
arg.Name,
arg.AutostartSchedule,
arg.Ttl,
arg.LastUsedAt,
)
var i Workspace
err := row.Scan(

View File

@ -270,10 +270,11 @@ INSERT INTO
template_id,
name,
autostart_schedule,
ttl
ttl,
last_used_at
)
VALUES
($1, $2, $3, $4, $5, $6, $7, $8, $9) RETURNING *;
($1, $2, $3, $4, $5, $6, $7, $8, $9, $10) RETURNING *;
-- name: UpdateWorkspaceDeletedByID :exec
UPDATE

View File

@ -58,13 +58,9 @@ func TestDeploymentInsights(t *testing.T) {
daus, err := client.DeploymentDAUs(context.Background())
require.NoError(t, err)
require.Equal(t, &codersdk.DeploymentDAUsResponse{
Entries: []codersdk.DAUEntry{},
}, daus, "no DAUs when stats are empty")
res, err := client.Workspaces(ctx, codersdk.WorkspaceFilter{})
require.NoError(t, err)
assert.Zero(t, res.Workspaces[0].LastUsedAt)
assert.NotZero(t, res.Workspaces[0].LastUsedAt)
conn, err := client.DialWorkspaceAgent(ctx, resources[0].Agents[0].ID, &codersdk.DialWorkspaceAgentOptions{
Logger: slogtest.Make(t, nil).Named("tailnet"),

View File

@ -480,6 +480,9 @@ func (api *API) postWorkspacesByOrganization(rw http.ResponseWriter, r *http.Req
Name: createWorkspace.Name,
AutostartSchedule: dbAutostartSchedule,
Ttl: dbTTL,
// The workspaces page will sort by last used at, and it's useful to
// have the newly created workspace at the top of the list!
LastUsedAt: database.Now(),
})
if err != nil {
return xerrors.Errorf("insert workspace: %w", err)