From 995b330250fbc9ce46bef2f0e6d868d9ec47c8c1 Mon Sep 17 00:00:00 2001 From: Ethan <39577870+ethanndickson@users.noreply.github.com> Date: Tue, 16 Sep 2025 13:51:26 +1000 Subject: [PATCH] test: avoid sharing deployment values between subtests (#19833) Blink didn't figure out a CI failure on main was caused by a data race; fixing it. I've also updated the [blink prompt](https://gist.githubusercontent.com/ethanndickson/8dea9f1db3957ac1baf30ae8ce6f1a42/raw/060aea7fabb82bef0029a17dad9a5daee7940760/blink-flake-instructions.md). https://github.com/coder/coder/actions/runs/17737809615 --- cli/sharing_test.go | 33 +++++++++++++++------------- coderd/workspaces_test.go | 11 +++++----- enterprise/cli/sharing_test.go | 33 +++++++++++++++------------- enterprise/coderd/workspaces_test.go | 11 +++++----- 4 files changed, 48 insertions(+), 40 deletions(-) diff --git a/cli/sharing_test.go b/cli/sharing_test.go index 9044ed4968..71e153c64e 100644 --- a/cli/sharing_test.go +++ b/cli/sharing_test.go @@ -21,15 +21,14 @@ import ( func TestSharingShare(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentWorkspaceSharing)} - t.Run("ShareWithUsers_Simple", func(t *testing.T) { t.Parallel() var ( client, db = coderdtest.NewWithDatabase(t, &coderdtest.Options{ - DeploymentValues: dv, + DeploymentValues: coderdtest.DeploymentValues(t, func(dv *codersdk.DeploymentValues) { + dv.Experiments = []string{string(codersdk.ExperimentWorkspaceSharing)} + }), }) orgOwner = coderdtest.CreateFirstUser(t, client) workspaceOwnerClient, workspaceOwner = coderdtest.CreateAnotherUser(t, client, orgOwner.OrganizationID, rbac.ScopedRoleOrgAuditor(orgOwner.OrganizationID)) @@ -69,7 +68,9 @@ func TestSharingShare(t *testing.T) { var ( client, db = coderdtest.NewWithDatabase(t, &coderdtest.Options{ - DeploymentValues: dv, + DeploymentValues: coderdtest.DeploymentValues(t, func(dv *codersdk.DeploymentValues) { + dv.Experiments = []string{string(codersdk.ExperimentWorkspaceSharing)} + }), }) orgOwner = coderdtest.CreateFirstUser(t, client) @@ -124,7 +125,9 @@ func TestSharingShare(t *testing.T) { var ( client, db = coderdtest.NewWithDatabase(t, &coderdtest.Options{ - DeploymentValues: dv, + DeploymentValues: coderdtest.DeploymentValues(t, func(dv *codersdk.DeploymentValues) { + dv.Experiments = []string{string(codersdk.ExperimentWorkspaceSharing)} + }), }) orgOwner = coderdtest.CreateFirstUser(t, client) workspaceOwnerClient, workspaceOwner = coderdtest.CreateAnotherUser(t, client, orgOwner.OrganizationID, rbac.ScopedRoleOrgAuditor(orgOwner.OrganizationID)) @@ -171,15 +174,14 @@ func TestSharingShare(t *testing.T) { func TestSharingStatus(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentWorkspaceSharing)} - t.Run("ListSharedUsers", func(t *testing.T) { t.Parallel() var ( client, db = coderdtest.NewWithDatabase(t, &coderdtest.Options{ - DeploymentValues: dv, + DeploymentValues: coderdtest.DeploymentValues(t, func(dv *codersdk.DeploymentValues) { + dv.Experiments = []string{string(codersdk.ExperimentWorkspaceSharing)} + }), }) orgOwner = coderdtest.CreateFirstUser(t, client) workspaceOwnerClient, workspaceOwner = coderdtest.CreateAnotherUser(t, client, orgOwner.OrganizationID, rbac.ScopedRoleOrgAuditor(orgOwner.OrganizationID)) @@ -220,15 +222,14 @@ func TestSharingStatus(t *testing.T) { func TestSharingRemove(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentWorkspaceSharing)} - t.Run("RemoveSharedUser_Simple", func(t *testing.T) { t.Parallel() var ( client, db = coderdtest.NewWithDatabase(t, &coderdtest.Options{ - DeploymentValues: dv, + DeploymentValues: coderdtest.DeploymentValues(t, func(dv *codersdk.DeploymentValues) { + dv.Experiments = []string{string(codersdk.ExperimentWorkspaceSharing)} + }), }) orgOwner = coderdtest.CreateFirstUser(t, client) workspaceOwnerClient, workspaceOwner = coderdtest.CreateAnotherUser(t, client, orgOwner.OrganizationID, rbac.ScopedRoleOrgAuditor(orgOwner.OrganizationID)) @@ -287,7 +288,9 @@ func TestSharingRemove(t *testing.T) { var ( client, db = coderdtest.NewWithDatabase(t, &coderdtest.Options{ - DeploymentValues: dv, + DeploymentValues: coderdtest.DeploymentValues(t, func(dv *codersdk.DeploymentValues) { + dv.Experiments = []string{string(codersdk.ExperimentWorkspaceSharing)} + }), }) orgOwner = coderdtest.CreateFirstUser(t, client) workspaceOwnerClient, workspaceOwner = coderdtest.CreateAnotherUser(t, client, orgOwner.OrganizationID, rbac.ScopedRoleOrgAuditor(orgOwner.OrganizationID)) diff --git a/coderd/workspaces_test.go b/coderd/workspaces_test.go index 6045745deb..abf3941e61 100644 --- a/coderd/workspaces_test.go +++ b/coderd/workspaces_test.go @@ -4917,15 +4917,14 @@ func TestUpdateWorkspaceACL(t *testing.T) { func TestDeleteWorkspaceACL(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentWorkspaceSharing)} - t.Run("WorkspaceOwnerCanDelete", func(t *testing.T) { t.Parallel() var ( client, db = coderdtest.NewWithDatabase(t, &coderdtest.Options{ - DeploymentValues: dv, + DeploymentValues: coderdtest.DeploymentValues(t, func(dv *codersdk.DeploymentValues) { + dv.Experiments = []string{string(codersdk.ExperimentWorkspaceSharing)} + }), }) admin = coderdtest.CreateFirstUser(t, client) workspaceOwnerClient, workspaceOwner = coderdtest.CreateAnotherUser(t, client, admin.OrganizationID) @@ -4958,7 +4957,9 @@ func TestDeleteWorkspaceACL(t *testing.T) { var ( client, db = coderdtest.NewWithDatabase(t, &coderdtest.Options{ - DeploymentValues: dv, + DeploymentValues: coderdtest.DeploymentValues(t, func(dv *codersdk.DeploymentValues) { + dv.Experiments = []string{string(codersdk.ExperimentWorkspaceSharing)} + }), }) admin = coderdtest.CreateFirstUser(t, client) workspaceOwnerClient, workspaceOwner = coderdtest.CreateAnotherUser(t, client, admin.OrganizationID) diff --git a/enterprise/cli/sharing_test.go b/enterprise/cli/sharing_test.go index 65b8ce53a2..9e99b85886 100644 --- a/enterprise/cli/sharing_test.go +++ b/enterprise/cli/sharing_test.go @@ -26,16 +26,15 @@ import ( func TestSharingShare(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentWorkspaceSharing)} - t.Run("ShareWithGroups_Simple", func(t *testing.T) { t.Parallel() var ( client, db, orgOwner = coderdenttest.NewWithDatabase(t, &coderdenttest.Options{ Options: &coderdtest.Options{ - DeploymentValues: dv, + DeploymentValues: coderdtest.DeploymentValues(t, func(dv *codersdk.DeploymentValues) { + dv.Experiments = []string{string(codersdk.ExperimentWorkspaceSharing)} + }), }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ @@ -86,7 +85,9 @@ func TestSharingShare(t *testing.T) { var ( client, db, orgOwner = coderdenttest.NewWithDatabase(t, &coderdenttest.Options{ Options: &coderdtest.Options{ - DeploymentValues: dv, + DeploymentValues: coderdtest.DeploymentValues(t, func(dv *codersdk.DeploymentValues) { + dv.Experiments = []string{string(codersdk.ExperimentWorkspaceSharing)} + }), }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ @@ -140,7 +141,9 @@ func TestSharingShare(t *testing.T) { var ( client, db, orgOwner = coderdenttest.NewWithDatabase(t, &coderdenttest.Options{ Options: &coderdtest.Options{ - DeploymentValues: dv, + DeploymentValues: coderdtest.DeploymentValues(t, func(dv *codersdk.DeploymentValues) { + dv.Experiments = []string{string(codersdk.ExperimentWorkspaceSharing)} + }), }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ @@ -190,16 +193,15 @@ func TestSharingShare(t *testing.T) { func TestSharingStatus(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentWorkspaceSharing)} - t.Run("ListSharedUsers", func(t *testing.T) { t.Parallel() var ( client, db, orgOwner = coderdenttest.NewWithDatabase(t, &coderdenttest.Options{ Options: &coderdtest.Options{ - DeploymentValues: dv, + DeploymentValues: coderdtest.DeploymentValues(t, func(dv *codersdk.DeploymentValues) { + dv.Experiments = []string{string(codersdk.ExperimentWorkspaceSharing)} + }), }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ @@ -248,16 +250,15 @@ func TestSharingStatus(t *testing.T) { func TestSharingRemove(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentWorkspaceSharing)} - t.Run("RemoveSharedGroup_Single", func(t *testing.T) { t.Parallel() var ( client, db, orgOwner = coderdenttest.NewWithDatabase(t, &coderdenttest.Options{ Options: &coderdtest.Options{ - DeploymentValues: dv, + DeploymentValues: coderdtest.DeploymentValues(t, func(dv *codersdk.DeploymentValues) { + dv.Experiments = []string{string(codersdk.ExperimentWorkspaceSharing)} + }), }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ @@ -328,7 +329,9 @@ func TestSharingRemove(t *testing.T) { var ( client, db, orgOwner = coderdenttest.NewWithDatabase(t, &coderdenttest.Options{ Options: &coderdtest.Options{ - DeploymentValues: dv, + DeploymentValues: coderdtest.DeploymentValues(t, func(dv *codersdk.DeploymentValues) { + dv.Experiments = []string{string(codersdk.ExperimentWorkspaceSharing)} + }), }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ diff --git a/enterprise/coderd/workspaces_test.go b/enterprise/coderd/workspaces_test.go index 745af8df23..e251eaecfa 100644 --- a/enterprise/coderd/workspaces_test.go +++ b/enterprise/coderd/workspaces_test.go @@ -4106,16 +4106,15 @@ func TestUpdateWorkspaceACL(t *testing.T) { func TestDeleteWorkspaceACL(t *testing.T) { t.Parallel() - dv := coderdtest.DeploymentValues(t) - dv.Experiments = []string{string(codersdk.ExperimentWorkspaceSharing)} - t.Run("WorkspaceOwnerCanDelete_Groups", func(t *testing.T) { t.Parallel() var ( client, db, admin = coderdenttest.NewWithDatabase(t, &coderdenttest.Options{ Options: &coderdtest.Options{ - DeploymentValues: dv, + DeploymentValues: coderdtest.DeploymentValues(t, func(dv *codersdk.DeploymentValues) { + dv.Experiments = []string{string(codersdk.ExperimentWorkspaceSharing)} + }), }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{ @@ -4157,7 +4156,9 @@ func TestDeleteWorkspaceACL(t *testing.T) { var ( client, db, admin = coderdenttest.NewWithDatabase(t, &coderdenttest.Options{ Options: &coderdtest.Options{ - DeploymentValues: dv, + DeploymentValues: coderdtest.DeploymentValues(t, func(dv *codersdk.DeploymentValues) { + dv.Experiments = []string{string(codersdk.ExperimentWorkspaceSharing)} + }), }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{