Skip to content

Commit 3129bf3

Browse files
committed
Use inner-tx database instance to retrieve workspace agent data after workspace claimed in tx
Also fix e2e test to use privileged user to validate this behaviour Signed-off-by: Danny Kopping <dannykopping@gmail.com>
1 parent 8c45183 commit 3129bf3

File tree

4 files changed

+15
-12
lines changed

4 files changed

+15
-12
lines changed

coderd/workspaces.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -677,7 +677,7 @@ func createWorkspace(
677677
// Prebuild found!
678678
workspaceID = claimedWorkspace.ID
679679
initiatorID = prebuilds.Initiator()
680-
agents, err := api.Database.GetWorkspaceAgentsInLatestBuildByWorkspaceID(ctx, claimedWorkspace.ID)
680+
agents, err := db.GetWorkspaceAgentsInLatestBuildByWorkspaceID(ctx, claimedWorkspace.ID)
681681
if err != nil {
682682
api.Logger.Error(ctx, "failed to retrieve running agents of claimed prebuilt workspace",
683683
slog.F("workspace_id", claimedWorkspace.ID), slog.Error(err))

site/e2e/tests/presets/basic-presets-with-prebuild/main.tf

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ terraform {
22
required_providers {
33
coder = {
44
source = "coder/coder"
5-
version = "2.1.3"
5+
version = "2.3.0-pre2"
66
}
77
docker = {
88
source = "kreuzwerker/docker"

site/e2e/tests/presets/basic-presets/main.tf

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ terraform {
22
required_providers {
33
coder = {
44
source = "coder/coder"
5-
version = "2.1.3"
5+
version = "2.3.0-pre2"
66
}
77
docker = {
88
source = "kreuzwerker/docker"

site/e2e/tests/presets/prebuilds.spec.ts

+12-9
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,8 @@
11
import path from "node:path";
2-
import { type Locator, expect, test } from "@playwright/test";
3-
import {
4-
currentUser,
5-
importTemplate,
6-
login,
7-
randomName,
8-
requiresLicense,
9-
} from "../../helpers";
10-
import { beforeCoderTest } from "../../hooks";
2+
import {expect, type Locator, test} from "@playwright/test";
3+
import {currentUser, importTemplate, login, randomName, requiresLicense,} from "../../helpers";
4+
import {beforeCoderTest} from "../../hooks";
5+
import {users} from "../../constants";
116

127
test.beforeEach(async ({ page }) => {
138
beforeCoderTest(page);
@@ -23,6 +18,8 @@ const templateFiles = [
2318

2419
const expectedPrebuilds = 2;
2520

21+
// TODO: update provider version in *.tf
22+
2623
// NOTE: requires the `workspace-prebuilds` experiment enabled!
2724
test("create template with desired prebuilds", async ({ page, baseURL }) => {
2825
requiresLicense();
@@ -83,6 +80,9 @@ test("claim prebuild matching selected preset", async ({ page, baseURL }) => {
8380
// Wait for the prebuild to become ready so it's eligible to be claimed.
8481
await page.getByTestId("agent-status-ready").waitFor({ timeout: 60_000 });
8582

83+
// Logout as admin, and login as an unprivileged user.
84+
await login(page, users.member);
85+
8686
// Create a new workspace using the same preset as one of the prebuilds.
8787
await page.goto(`/templates/coder/${templateName}/workspace`, {
8888
waitUntil: "domcontentloaded",
@@ -117,6 +117,9 @@ test("claim prebuild matching selected preset", async ({ page, baseURL }) => {
117117
const text = indicator.locator("xpath=..").getByText("Yes");
118118
await text.waitFor({ timeout: 30_000 });
119119

120+
// Logout as unprivileged user, and login as admin.
121+
await login(page, users.admin);
122+
120123
// Navigate back to prebuilds page to see that a new prebuild replaced the claimed one.
121124
await page.goto(
122125
`/workspaces?filter=owner:prebuilds%20template:${templateName}&page=1`,

0 commit comments

Comments
 (0)