Skip to content

Commit f2a2dbd

Browse files
committedNov 28, 2024
chore(integration): add test for workspace owner being set
1 parent 98ffced commit f2a2dbd

File tree

2 files changed

+86
-0
lines changed

2 files changed

+86
-0
lines changed
 

‎integration/integration_test.go

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,34 @@ func TestIntegration(t *testing.T) {
115115
"workspace_owner.login_type": ``,
116116
},
117117
},
118+
{
119+
name: "workspace-owner-filled",
120+
minVersion: "v2.18.0",
121+
expectedOutput: map[string]string{
122+
"provisioner.arch": runtime.GOARCH,
123+
"provisioner.id": `[a-zA-Z0-9-]+`,
124+
"provisioner.os": runtime.GOOS,
125+
"workspace.access_port": `\d+`,
126+
"workspace.access_url": `https?://\D+:\d+`,
127+
"workspace.id": `[a-zA-z0-9-]+`,
128+
"workspace.name": ``,
129+
"workspace.start_count": `1`,
130+
"workspace.template_id": `[a-zA-Z0-9-]+`,
131+
"workspace.template_name": `workspace-owner`,
132+
"workspace.template_version": `.+`,
133+
"workspace.transition": `start`,
134+
"workspace_owner.email": `testing@coder\.com`,
135+
"workspace_owner.full_name": `default`,
136+
"workspace_owner.groups": `\[(\"Everyone\")?\]`,
137+
"workspace_owner.id": `[a-zA-Z0-9-]+`,
138+
"workspace_owner.name": `testing`,
139+
"workspace_owner.oidc_access_token": `^$`, // TODO: test OIDC integration
140+
"workspace_owner.session_token": `.+`,
141+
"workspace_owner.ssh_private_key": `(?s)^.+?BEGIN OPENSSH PRIVATE KEY.+?END OPENSSH PRIVATE KEY.+?$`,
142+
"workspace_owner.ssh_public_key": `(?s)^ssh-ed25519.+$`,
143+
"workspace_owner.login_type": `password`,
144+
},
145+
},
118146
{
119147
name: "coder-app-hidden",
120148
minVersion: "v0.0.0",
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
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+
}
44+
}
45+
46+
variable "output_path" {
47+
type = string
48+
}
49+
50+
resource "local_file" "output" {
51+
filename = var.output_path
52+
content = jsonencode(local.output)
53+
}
54+
55+
output "output" {
56+
value = local.output
57+
sensitive = true
58+
}

0 commit comments

Comments
 (0)