fmt
This commit is contained in:
@@ -1,5 +1,14 @@
|
|||||||
import { describe, expect, it } from "bun:test";
|
import { describe, expect, it } from "bun:test";
|
||||||
import { createJSONResponse, execContainer, findResourceInstance, runContainer, runTerraformApply, runTerraformInit, testRequiredVariables, writeCoder } from "../test";
|
import {
|
||||||
|
createJSONResponse,
|
||||||
|
execContainer,
|
||||||
|
findResourceInstance,
|
||||||
|
runContainer,
|
||||||
|
runTerraformApply,
|
||||||
|
runTerraformInit,
|
||||||
|
testRequiredVariables,
|
||||||
|
writeCoder,
|
||||||
|
} from "../test";
|
||||||
import { Server, serve } from "bun";
|
import { Server, serve } from "bun";
|
||||||
|
|
||||||
describe("github-upload-public-key", async () => {
|
describe("github-upload-public-key", async () => {
|
||||||
@@ -13,7 +22,7 @@ describe("github-upload-public-key", async () => {
|
|||||||
const { instance, id } = await setupContainer();
|
const { instance, id } = await setupContainer();
|
||||||
await writeCoder(id, "echo foo");
|
await writeCoder(id, "echo foo");
|
||||||
let exec = await execContainer(id, ["bash", "-c", instance.script]);
|
let exec = await execContainer(id, ["bash", "-c", instance.script]);
|
||||||
expect(exec.stdout).toContain("Coder public SSH key uploaded to GitHub!")
|
expect(exec.stdout).toContain("Coder public SSH key uploaded to GitHub!");
|
||||||
expect(exec.exitCode).toBe(0);
|
expect(exec.exitCode).toBe(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -21,69 +30,81 @@ describe("github-upload-public-key", async () => {
|
|||||||
const { instance, id } = await setupContainer();
|
const { instance, id } = await setupContainer();
|
||||||
await writeCoder(id, "echo findkey");
|
await writeCoder(id, "echo findkey");
|
||||||
let exec = await execContainer(id, ["bash", "-c", instance.script]);
|
let exec = await execContainer(id, ["bash", "-c", instance.script]);
|
||||||
expect(exec.stdout).toContain("Coder public SSH key is already uploaded to GitHub!")
|
expect(exec.stdout).toContain(
|
||||||
|
"Coder public SSH key is already uploaded to GitHub!",
|
||||||
|
);
|
||||||
expect(exec.exitCode).toBe(0);
|
expect(exec.exitCode).toBe(0);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
const setupContainer = async (
|
const setupContainer = async (
|
||||||
image = "lorello/alpine-bash",
|
image = "lorello/alpine-bash",
|
||||||
vars: Record<string, string> = {},
|
vars: Record<string, string> = {},
|
||||||
) => {
|
) => {
|
||||||
const server = await setupServer();
|
const server = await setupServer();
|
||||||
const state = await runTerraformApply(import.meta.dir, {
|
const state = await runTerraformApply(import.meta.dir, {
|
||||||
agent_id: "foo",
|
agent_id: "foo",
|
||||||
// trim the trailing slash on the URL
|
// trim the trailing slash on the URL
|
||||||
access_url: server.url.toString().slice(0, -1),
|
access_url: server.url.toString().slice(0, -1),
|
||||||
owner_session_token: "bar",
|
owner_session_token: "bar",
|
||||||
github_api_url: server.url.toString().slice(0, -1),
|
github_api_url: server.url.toString().slice(0, -1),
|
||||||
...vars,
|
...vars,
|
||||||
});
|
});
|
||||||
const instance = findResourceInstance(state, "coder_script");
|
const instance = findResourceInstance(state, "coder_script");
|
||||||
const id = await runContainer(image);
|
const id = await runContainer(image);
|
||||||
return { id, instance };
|
return { id, instance };
|
||||||
};
|
};
|
||||||
|
|
||||||
const setupServer = async (): Promise<Server> => {
|
const setupServer = async (): Promise<Server> => {
|
||||||
let url: URL;
|
let url: URL;
|
||||||
const fakeSlackHost = serve({
|
const fakeSlackHost = serve({
|
||||||
fetch: (req) => {
|
fetch: (req) => {
|
||||||
url = new URL(req.url);
|
url = new URL(req.url);
|
||||||
if (url.pathname === "/api/v2/users/me/gitsshkey") {
|
if (url.pathname === "/api/v2/users/me/gitsshkey") {
|
||||||
return createJSONResponse({
|
|
||||||
public_key: "exists",
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (url.pathname === "/user/keys") {
|
|
||||||
if (req.method === "POST") {
|
|
||||||
return createJSONResponse({
|
|
||||||
key: "created",
|
|
||||||
}, 201);
|
|
||||||
}
|
|
||||||
|
|
||||||
// case: key already exists
|
|
||||||
if (req.headers.get("Authorization") == "Bearer findkey") {
|
|
||||||
return createJSONResponse([{
|
|
||||||
key: "foo",
|
|
||||||
}, {
|
|
||||||
key: "exists",
|
|
||||||
}]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// case: key does not exist
|
|
||||||
return createJSONResponse([{
|
|
||||||
key: "foo",
|
|
||||||
}]);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
return createJSONResponse({
|
return createJSONResponse({
|
||||||
error: "not_found"
|
public_key: "exists",
|
||||||
}, 404);
|
});
|
||||||
},
|
}
|
||||||
port: 0,
|
|
||||||
});
|
|
||||||
|
|
||||||
return fakeSlackHost;
|
if (url.pathname === "/user/keys") {
|
||||||
}
|
if (req.method === "POST") {
|
||||||
|
return createJSONResponse(
|
||||||
|
{
|
||||||
|
key: "created",
|
||||||
|
},
|
||||||
|
201,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// case: key already exists
|
||||||
|
if (req.headers.get("Authorization") == "Bearer findkey") {
|
||||||
|
return createJSONResponse([
|
||||||
|
{
|
||||||
|
key: "foo",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: "exists",
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// case: key does not exist
|
||||||
|
return createJSONResponse([
|
||||||
|
{
|
||||||
|
key: "foo",
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return createJSONResponse(
|
||||||
|
{
|
||||||
|
error: "not_found",
|
||||||
|
},
|
||||||
|
404,
|
||||||
|
);
|
||||||
|
},
|
||||||
|
port: 0,
|
||||||
|
});
|
||||||
|
|
||||||
|
return fakeSlackHost;
|
||||||
|
};
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ variable "external_auth_id" {
|
|||||||
variable "github_api_url" {
|
variable "github_api_url" {
|
||||||
type = string
|
type = string
|
||||||
description = "The URL of the GitHub instance."
|
description = "The URL of the GitHub instance."
|
||||||
default = "https://api.github.com"
|
default = "https://api.github.com"
|
||||||
}
|
}
|
||||||
|
|
||||||
// Optional variables mostly for testing purposes, will normally come from data.coder_workspace.me
|
// Optional variables mostly for testing purposes, will normally come from data.coder_workspace.me
|
||||||
|
|||||||
Reference in New Issue
Block a user