Skip to content

Commit 6dfe3f5

Browse files
committed
chore(integration): fix failing tests referencing workspace_owner.rbac_roles
1 parent eab8698 commit 6dfe3f5

File tree

2 files changed

+90
-2
lines changed

2 files changed

+90
-2
lines changed

integration/integration_test.go

+31-2
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ func TestIntegration(t *testing.T) {
122122
"workspace_owner.ssh_private_key": `(?s)^.+?BEGIN OPENSSH PRIVATE KEY.+?END OPENSSH PRIVATE KEY.+?$`,
123123
"workspace_owner.ssh_public_key": `(?s)^ssh-ed25519.+$`,
124124
"workspace_owner.login_type": ``,
125-
"workspace_owner.rbac_roles": `\[\]`,
125+
"workspace_owner.rbac_roles": ``,
126126
},
127127
},
128128
{
@@ -151,7 +151,36 @@ func TestIntegration(t *testing.T) {
151151
"workspace_owner.ssh_private_key": `(?s)^.+?BEGIN OPENSSH PRIVATE KEY.+?END OPENSSH PRIVATE KEY.+?$`,
152152
"workspace_owner.ssh_public_key": `(?s)^ssh-ed25519.+$`,
153153
"workspace_owner.login_type": `password`,
154-
"workspace_owner.rbac_roles": `\[\]`,
154+
"workspace_owner.rbac_roles": ``,
155+
},
156+
},
157+
{
158+
name: "workspace-owner-rbac-roles",
159+
minVersion: "v2.21.0", // anticipated version, update as required
160+
expectedOutput: map[string]string{
161+
"provisioner.arch": runtime.GOARCH,
162+
"provisioner.id": `[a-zA-Z0-9-]+`,
163+
"provisioner.os": runtime.GOOS,
164+
"workspace.access_port": `\d+`,
165+
"workspace.access_url": `https?://\D+:\d+`,
166+
"workspace.id": `[a-zA-z0-9-]+`,
167+
"workspace.name": ``,
168+
"workspace.start_count": `1`,
169+
"workspace.template_id": `[a-zA-Z0-9-]+`,
170+
"workspace.template_name": `workspace-owner`,
171+
"workspace.template_version": `.+`,
172+
"workspace.transition": `start`,
173+
"workspace_owner.email": `testing@coder\.com`,
174+
"workspace_owner.full_name": `default`,
175+
"workspace_owner.groups": `\[(\"Everyone\")?\]`,
176+
"workspace_owner.id": `[a-zA-Z0-9-]+`,
177+
"workspace_owner.name": `testing`,
178+
"workspace_owner.oidc_access_token": `^$`, // TODO: test OIDC integration
179+
"workspace_owner.session_token": `.+`,
180+
"workspace_owner.ssh_private_key": `(?s)^.+?BEGIN OPENSSH PRIVATE KEY.+?END OPENSSH PRIVATE KEY.+?$`,
181+
"workspace_owner.ssh_public_key": `(?s)^ssh-ed25519.+$`,
182+
"workspace_owner.login_type": `password`,
183+
"workspace_owner.rbac_roles": `(?is)\[(\{"name":"[a-z0-9-:]+","org_id":"[a-f0-9-]+"\},?)+\]`,
155184
},
156185
},
157186
{
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
terraform {
2+
required_providers {
3+
coder = {
4+
source = "coder/coder"
5+
}
6+
local = {
7+
source = "hashicorp/local"
8+
}
9+
}
10+
}
11+
12+
// TODO: test coder_external_auth
13+
// data coder_external_auth "me" {}
14+
data "coder_provisioner" "me" {}
15+
data "coder_workspace" "me" {}
16+
data "coder_workspace_owner" "me" {}
17+
18+
locals {
19+
# NOTE: these must all be strings in the output
20+
output = {
21+
"provisioner.arch" : data.coder_provisioner.me.arch,
22+
"provisioner.id" : data.coder_provisioner.me.id,
23+
"provisioner.os" : data.coder_provisioner.me.os,
24+
"workspace.access_port" : tostring(data.coder_workspace.me.access_port),
25+
"workspace.access_url" : data.coder_workspace.me.access_url,
26+
"workspace.id" : data.coder_workspace.me.id,
27+
"workspace.name" : data.coder_workspace.me.name,
28+
"workspace.start_count" : tostring(data.coder_workspace.me.start_count),
29+
"workspace.template_id" : data.coder_workspace.me.template_id,
30+
"workspace.template_name" : data.coder_workspace.me.template_name,
31+
"workspace.template_version" : data.coder_workspace.me.template_version,
32+
"workspace.transition" : data.coder_workspace.me.transition,
33+
"workspace_owner.email" : data.coder_workspace_owner.me.email,
34+
"workspace_owner.full_name" : data.coder_workspace_owner.me.full_name,
35+
"workspace_owner.groups" : jsonencode(data.coder_workspace_owner.me.groups),
36+
"workspace_owner.id" : data.coder_workspace_owner.me.id,
37+
"workspace_owner.name" : data.coder_workspace_owner.me.name,
38+
"workspace_owner.oidc_access_token" : data.coder_workspace_owner.me.oidc_access_token,
39+
"workspace_owner.session_token" : data.coder_workspace_owner.me.session_token,
40+
"workspace_owner.ssh_private_key" : data.coder_workspace_owner.me.ssh_private_key,
41+
"workspace_owner.ssh_public_key" : data.coder_workspace_owner.me.ssh_public_key,
42+
"workspace_owner.login_type" : data.coder_workspace_owner.me.login_type,
43+
"workspace_owner.rbac_roles" : jsonencode(data.coder_workspace_owner.me.rbac_roles),
44+
}
45+
}
46+
47+
variable "output_path" {
48+
type = string
49+
}
50+
51+
resource "local_file" "output" {
52+
filename = var.output_path
53+
content = jsonencode(local.output)
54+
}
55+
56+
output "output" {
57+
value = local.output
58+
sensitive = true
59+
}

0 commit comments

Comments
 (0)