Skip to content

Commit bbd0803

Browse files
committed
chore: move group test to enterprise
1 parent d5a68dd commit bbd0803

File tree

5 files changed

+105
-72
lines changed

5 files changed

+105
-72
lines changed

coderd/parameters.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,9 @@ func prepareDynamicPreview(ctx context.Context, rw http.ResponseWriter, db datab
248248
}
249249

250250
return func(ctx context.Context, values map[string]string) (*preview.Output, hcl.Diagnostics) {
251+
// Update the input values with the new values.
252+
// The rest of the input is unchanged.
253+
input.ParameterValues = values
251254
return preview.Preview(ctx, input, templateFS)
252255
}, closeFiles, true
253256
}

coderd/parameters_test.go

Lines changed: 0 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -25,77 +25,6 @@ import (
2525
"github.com/coder/websocket"
2626
)
2727

28-
func TestDynamicParametersOwnerGroups(t *testing.T) {
29-
t.Parallel()
30-
31-
cfg := coderdtest.DeploymentValues(t)
32-
cfg.Experiments = []string{string(codersdk.ExperimentDynamicParameters)}
33-
ownerClient := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true, DeploymentValues: cfg})
34-
owner := coderdtest.CreateFirstUser(t, ownerClient)
35-
templateAdmin, templateAdminUser := coderdtest.CreateAnotherUser(t, ownerClient, owner.OrganizationID, rbac.RoleTemplateAdmin())
36-
37-
dynamicParametersTerraformSource, err := os.ReadFile("testdata/parameters/groups/main.tf")
38-
require.NoError(t, err)
39-
dynamicParametersTerraformPlan, err := os.ReadFile("testdata/parameters/groups/plan.json")
40-
require.NoError(t, err)
41-
42-
files := echo.WithExtraFiles(map[string][]byte{
43-
"main.tf": dynamicParametersTerraformSource,
44-
})
45-
files.ProvisionPlan = []*proto.Response{{
46-
Type: &proto.Response_Plan{
47-
Plan: &proto.PlanComplete{
48-
Plan: dynamicParametersTerraformPlan,
49-
},
50-
},
51-
}}
52-
53-
version := coderdtest.CreateTemplateVersion(t, templateAdmin, owner.OrganizationID, files)
54-
coderdtest.AwaitTemplateVersionJobCompleted(t, templateAdmin, version.ID)
55-
_ = coderdtest.CreateTemplate(t, templateAdmin, owner.OrganizationID, version.ID)
56-
57-
ctx := testutil.Context(t, testutil.WaitShort)
58-
stream, err := templateAdmin.TemplateVersionDynamicParameters(ctx, templateAdminUser.ID, version.ID)
59-
require.NoError(t, err)
60-
defer stream.Close(websocket.StatusGoingAway)
61-
62-
previews := stream.Chan()
63-
64-
// Should automatically send a form state with all defaulted/empty values
65-
preview := testutil.RequireReceive(ctx, t, previews)
66-
require.Equal(t, -1, preview.ID)
67-
require.Empty(t, preview.Diagnostics)
68-
require.Equal(t, "group", preview.Parameters[0].Name)
69-
require.True(t, preview.Parameters[0].Value.Valid())
70-
require.Equal(t, "Everyone", preview.Parameters[0].Value.Value.AsString())
71-
72-
// Send a new value, and see it reflected
73-
err = stream.Send(codersdk.DynamicParametersRequest{
74-
ID: 1,
75-
Inputs: map[string]string{"group": "Bloob"},
76-
})
77-
require.NoError(t, err)
78-
preview = testutil.RequireReceive(ctx, t, previews)
79-
require.Equal(t, 1, preview.ID)
80-
require.Empty(t, preview.Diagnostics)
81-
require.Equal(t, "group", preview.Parameters[0].Name)
82-
require.True(t, preview.Parameters[0].Value.Valid())
83-
require.Equal(t, "Bloob", preview.Parameters[0].Value.Value.AsString())
84-
85-
// Back to default
86-
err = stream.Send(codersdk.DynamicParametersRequest{
87-
ID: 3,
88-
Inputs: map[string]string{},
89-
})
90-
require.NoError(t, err)
91-
preview = testutil.RequireReceive(ctx, t, previews)
92-
require.Equal(t, 3, preview.ID)
93-
require.Empty(t, preview.Diagnostics)
94-
require.Equal(t, "group", preview.Parameters[0].Name)
95-
require.True(t, preview.Parameters[0].Value.Valid())
96-
require.Equal(t, "Everyone", preview.Parameters[0].Value.Value.AsString())
97-
}
98-
9928
func TestDynamicParametersOwnerSSHPublicKey(t *testing.T) {
10029
t.Parallel()
10130

enterprise/coderd/parameters_test.go

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
package coderd_test
2+
3+
import (
4+
"os"
5+
"testing"
6+
7+
"github.com/stretchr/testify/require"
8+
9+
"github.com/coder/coder/v2/coderd/coderdtest"
10+
"github.com/coder/coder/v2/coderd/database"
11+
"github.com/coder/coder/v2/coderd/rbac"
12+
"github.com/coder/coder/v2/codersdk"
13+
"github.com/coder/coder/v2/enterprise/coderd/coderdenttest"
14+
"github.com/coder/coder/v2/enterprise/coderd/license"
15+
"github.com/coder/coder/v2/provisioner/echo"
16+
"github.com/coder/coder/v2/provisionersdk/proto"
17+
"github.com/coder/coder/v2/testutil"
18+
"github.com/coder/websocket"
19+
)
20+
21+
func TestDynamicParametersOwnerGroups(t *testing.T) {
22+
t.Parallel()
23+
24+
cfg := coderdtest.DeploymentValues(t)
25+
cfg.Experiments = []string{string(codersdk.ExperimentDynamicParameters)}
26+
ownerClient, owner := coderdenttest.New(t,
27+
&coderdenttest.Options{
28+
LicenseOptions: &coderdenttest.LicenseOptions{
29+
Features: license.Features{
30+
codersdk.FeatureTemplateRBAC: 1,
31+
},
32+
},
33+
Options: &coderdtest.Options{IncludeProvisionerDaemon: true, DeploymentValues: cfg},
34+
},
35+
)
36+
templateAdmin, templateAdminUser := coderdtest.CreateAnotherUser(t, ownerClient, owner.OrganizationID, rbac.RoleTemplateAdmin())
37+
38+
// Create the group to be asserted
39+
group := coderdtest.CreateGroup(t, ownerClient, owner.OrganizationID, "bloob", templateAdminUser)
40+
41+
dynamicParametersTerraformSource, err := os.ReadFile("testdata/parameters/groups/main.tf")
42+
require.NoError(t, err)
43+
dynamicParametersTerraformPlan, err := os.ReadFile("testdata/parameters/groups/plan.json")
44+
require.NoError(t, err)
45+
46+
files := echo.WithExtraFiles(map[string][]byte{
47+
"main.tf": dynamicParametersTerraformSource,
48+
})
49+
files.ProvisionPlan = []*proto.Response{{
50+
Type: &proto.Response_Plan{
51+
Plan: &proto.PlanComplete{
52+
Plan: dynamicParametersTerraformPlan,
53+
},
54+
},
55+
}}
56+
57+
version := coderdtest.CreateTemplateVersion(t, templateAdmin, owner.OrganizationID, files)
58+
coderdtest.AwaitTemplateVersionJobCompleted(t, templateAdmin, version.ID)
59+
_ = coderdtest.CreateTemplate(t, templateAdmin, owner.OrganizationID, version.ID)
60+
61+
ctx := testutil.Context(t, testutil.WaitShort)
62+
stream, err := templateAdmin.TemplateVersionDynamicParameters(ctx, templateAdminUser.ID, version.ID)
63+
require.NoError(t, err)
64+
defer stream.Close(websocket.StatusGoingAway)
65+
66+
previews := stream.Chan()
67+
68+
// Should automatically send a form state with all defaulted/empty values
69+
preview := testutil.RequireReceive(ctx, t, previews)
70+
require.Equal(t, -1, preview.ID)
71+
require.Empty(t, preview.Diagnostics)
72+
require.Equal(t, "group", preview.Parameters[0].Name)
73+
require.True(t, preview.Parameters[0].Value.Valid())
74+
require.Equal(t, database.EveryoneGroup, preview.Parameters[0].Value.Value.AsString())
75+
76+
// Send a new value, and see it reflected
77+
err = stream.Send(codersdk.DynamicParametersRequest{
78+
ID: 1,
79+
Inputs: map[string]string{"group": group.Name},
80+
})
81+
require.NoError(t, err)
82+
preview = testutil.RequireReceive(ctx, t, previews)
83+
require.Equal(t, 1, preview.ID)
84+
require.Empty(t, preview.Diagnostics)
85+
require.Equal(t, "group", preview.Parameters[0].Name)
86+
require.True(t, preview.Parameters[0].Value.Valid())
87+
require.Equal(t, group.Name, preview.Parameters[0].Value.Value.AsString())
88+
89+
// Back to default
90+
err = stream.Send(codersdk.DynamicParametersRequest{
91+
ID: 3,
92+
Inputs: map[string]string{},
93+
})
94+
require.NoError(t, err)
95+
preview = testutil.RequireReceive(ctx, t, previews)
96+
require.Equal(t, 3, preview.ID)
97+
require.Empty(t, preview.Diagnostics)
98+
require.Equal(t, "group", preview.Parameters[0].Name)
99+
require.True(t, preview.Parameters[0].Value.Valid())
100+
require.Equal(t, database.EveryoneGroup, preview.Parameters[0].Value.Value.AsString())
101+
}

coderd/testdata/parameters/groups/main.tf renamed to enterprise/coderd/testdata/parameters/groups/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ data "coder_parameter" "group" {
1212
name = "group"
1313
default = try(data.coder_workspace_owner.me.groups[0], "")
1414
dynamic "option" {
15-
for_each = concat(data.coder_workspace_owner.me.groups, "bloob")
15+
for_each = data.coder_workspace_owner.me.groups
1616
content {
1717
name = option.value
1818
value = option.value

0 commit comments

Comments
 (0)