import { describe, expect, it } from "bun:test"; import { runTerraformApply, runTerraformInit, testRequiredVariables, } from "../test"; describe("cursor", async () => { await runTerraformInit(import.meta.dir); testRequiredVariables(import.meta.dir, { agent_id: "foo", }); it("default output", async () => { const state = await runTerraformApply(import.meta.dir, { agent_id: "foo", }); expect(state.outputs.cursor_url.value).toBe( "cursor://coder.coder-remote/open?owner=default&workspace=default&url=https://mydeployment.coder.com&token=$SESSION_TOKEN", ); const coder_app = state.resources.find( (res) => res.type === "coder_app" && res.name === "cursor", ); expect(coder_app).not.toBeNull(); expect(coder_app?.instances.length).toBe(1); expect(coder_app?.instances[0].attributes.order).toBeNull(); }); it("adds folder", async () => { const state = await runTerraformApply(import.meta.dir, { agent_id: "foo", folder: "/foo/bar", }); expect(state.outputs.cursor_url.value).toBe( "cursor://coder.coder-remote/open?owner=default&workspace=default&folder=/foo/bar&url=https://mydeployment.coder.com&token=$SESSION_TOKEN", ); }); it("adds folder and open_recent", async () => { const state = await runTerraformApply(import.meta.dir, { agent_id: "foo", folder: "/foo/bar", open_recent: "true", }); expect(state.outputs.cursor_url.value).toBe( "cursor://coder.coder-remote/open?owner=default&workspace=default&folder=/foo/bar&openRecent&url=https://mydeployment.coder.com&token=$SESSION_TOKEN", ); }); it("adds folder but not open_recent", async () => { const state = await runTerraformApply(import.meta.dir, { agent_id: "foo", folder: "/foo/bar", openRecent: "false", }); expect(state.outputs.cursor_url.value).toBe( "cursor://coder.coder-remote/open?owner=default&workspace=default&folder=/foo/bar&url=https://mydeployment.coder.com&token=$SESSION_TOKEN", ); }); it("adds open_recent", async () => { const state = await runTerraformApply(import.meta.dir, { agent_id: "foo", open_recent: "true", }); expect(state.outputs.cursor_url.value).toBe( "cursor://coder.coder-remote/open?owner=default&workspace=default&openRecent&url=https://mydeployment.coder.com&token=$SESSION_TOKEN", ); }); it("expect order to be set", async () => { const state = await runTerraformApply(import.meta.dir, { agent_id: "foo", order: "22", }); const coder_app = state.resources.find( (res) => res.type === "coder_app" && res.name === "cursor", ); expect(coder_app).not.toBeNull(); expect(coder_app?.instances.length).toBe(1); expect(coder_app?.instances[0].attributes.order).toBe(22); }); });