Skip to content
14 changes: 13 additions & 1 deletion registry/coder/modules/jetbrains-gateway/main.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ describe("jetbrains-gateway", async () => {
folder: "/home/coder",
});
expect(state.outputs.url.value).toBe(
"jetbrains-gateway://connect#type=coder&workspace=default&owner=default&folder=/home/coder&url=https://mydeployment.coder.com&token=$SESSION_TOKEN&ide_product_code=IU&ide_build_number=243.21565.193&ide_download_link=https://download.jetbrains.com/idea/ideaIU-2024.3.tar.gz&agent_id=foo",
"jetbrains-gateway://connect#type=coder&workspace=default&owner=default&folder=/home/coder&url=https://mydeployment.coder.com&token=$SESSION_TOKEN&ide_product_code=IU&ide_build_number=243.21565.193&ide_download_link=https://download.jetbrains.com/idea/ideaIU-2024.3.tar.gz",
);

const coder_app = state.resources.find(
Expand All @@ -40,4 +40,16 @@ describe("jetbrains-gateway", async () => {
});
expect(state.outputs.identifier.value).toBe("IU");
});

it("optionally includes agent when an agent name is provided", async () => {
const state = await runTerraformApply(import.meta.dir, {
agent_id: "foo",
agent_name: "main",
folder: "/home/coder",
});

expect(state.outputs.url.value).toBe(
"jetbrains-gateway://connect#type=coder&workspace=default&owner=default&folder=/home/coder&url=https://mydeployment.coder.com&token=$SESSION_TOKEN&ide_product_code=IU&ide_build_number=243.21565.193&ide_download_link=https://download.jetbrains.com/idea/ideaIU-2024.3.tar.gz&agent=main",
);
});
});
13 changes: 6 additions & 7 deletions registry/coder/modules/jetbrains-gateway/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,8 @@ variable "slug" {

variable "agent_name" {
type = string
description = "Agent name. (unused). Will be removed in a future version"

default = ""
description = "Agent name."
default = ""
}

variable "folder" {
Expand Down Expand Up @@ -331,7 +330,7 @@ resource "coder_app" "gateway" {
external = true
order = var.order
group = var.group
url = join("", [
url = join("", concat([
"jetbrains-gateway://connect#type=coder&workspace=",
data.coder_workspace.me.name,
"&owner=",
Expand All @@ -348,9 +347,9 @@ resource "coder_app" "gateway" {
local.build_number,
"&ide_download_link=",
local.download_link,
"&agent_id=",
var.agent_id,
])
], trimspace(var.agent_name) != ""
? ["&agent=", var.agent_name]
: []))
}

output "identifier" {
Expand Down