mirror of
https://github.com/Termix-SSH/Termix.git
synced 2026-10-09 13:21:47 +00:00
75 lines
2.2 KiB
TypeScript
75 lines
2.2 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import {
|
|
SERVICES,
|
|
appRunArgs,
|
|
serviceEnv,
|
|
serviceRunArgs,
|
|
} from "./lib/dev-docker.mjs";
|
|
import { parseDevArgs } from "./lib/dev-runner.mjs";
|
|
|
|
describe("serviceRunArgs", () => {
|
|
it("runs a service on the dev network with its port, env and volume", () => {
|
|
const args = serviceRunArgs(SERVICES.postgres);
|
|
expect(args.slice(0, 6)).toEqual([
|
|
"run",
|
|
"-d",
|
|
"--name",
|
|
"termix-dev-postgres",
|
|
"--network",
|
|
"termix-dev",
|
|
]);
|
|
expect(args).toContain("55432:5432");
|
|
expect(args).toContain("POSTGRES_PASSWORD=termix");
|
|
expect(args).toContain("termix-dev-postgres:/var/lib/postgresql/data");
|
|
expect(args.at(-1)).toBe("postgres:16");
|
|
});
|
|
|
|
it("adds no volume for guacd", () => {
|
|
expect(serviceRunArgs(SERVICES.guacd)).not.toContain("-v");
|
|
});
|
|
});
|
|
|
|
describe("serviceEnv", () => {
|
|
it("is empty for plain sqlite", () => {
|
|
expect(serviceEnv(parseDevArgs([]), false)).toEqual({});
|
|
});
|
|
|
|
it("points a local backend at the published ports", () => {
|
|
expect(
|
|
serviceEnv(parseDevArgs(["--db", "postgres", "--guacd"]), false),
|
|
).toEqual({
|
|
DATABASE_DIALECT: "postgres",
|
|
DATABASE_URL: "postgres://termix:termix@127.0.0.1:55432/termix",
|
|
GUACD_HOST: "127.0.0.1",
|
|
GUACD_PORT: "4822",
|
|
});
|
|
});
|
|
|
|
it("points a container at the other containers by name", () => {
|
|
expect(
|
|
serviceEnv(parseDevArgs(["--db", "mysql", "--guacd"]), true),
|
|
).toEqual({
|
|
DATABASE_DIALECT: "mysql",
|
|
DATABASE_URL: "mysql://root:termix@termix-dev-mysql:3306/termix",
|
|
GUACD_HOST: "termix-dev-guacd",
|
|
GUACD_PORT: "4822",
|
|
});
|
|
});
|
|
});
|
|
|
|
describe("appRunArgs", () => {
|
|
it("mounts the data and the staged plugins", () => {
|
|
const args = appRunArgs({
|
|
port: 9000,
|
|
env: { GUACD_HOST: "termix-dev-guacd" },
|
|
dataMount: "termix-dev-data",
|
|
pluginsDir: "/repo/dist/plugins",
|
|
});
|
|
expect(args).toContain("9000:8080");
|
|
expect(args).toContain("GUACD_HOST=termix-dev-guacd");
|
|
expect(args).toContain("termix-dev-data:/app/data");
|
|
expect(args).toContain("/repo/dist/plugins:/app/dist/plugins");
|
|
expect(args.at(-1)).toBe("termix:dev");
|
|
});
|
|
});
|