import { assert, describe, it } from "@effect/vitest";import * as Effect from "effect/Effect";import * as FileSystem from "effect/FileSystem";import * as Layer from "effect/Layer"; import { ServerEnvironmentLabelCommandError, ServerEnvironmentLabelCommandRunner, resolveServerEnvironmentLabel,} from "./ServerEnvironmentLabel.ts";const NoopFileSystemLayer = FileSystem.layerNoop({});const NoopCommandRunnerLayer = Layer.mock(ServerEnvironmentLabelCommandRunner)({}); interface CommandCall { readonly command: string; readonly args: readonly string[];} function commandRunnerLayer(input: { readonly calls?: CommandCall[]; readonly run: ( command: string, args: readonly string[], ) => Effect.Effect< { readonly stdout: string; readonly exitCode: number }, ServerEnvironmentLabelCommandError >;}) { return Layer.mock(ServerEnvironmentLabelCommandRunner)({ run: (command, args) => Effect.gen(function* () { input.calls?.push({ command, args }); return yield* input.run(command, args); }), });} function testLayer(commandLayer = NoopCommandRunnerLayer) { return Layer.merge(NoopFileSystemLayer, commandLayer);} describe("resolveServerEnvironmentLabel", () => { it.effect("uses hostname fallback regardless of launch mode", () => Effect.gen(function* () { const result = yield* resolveServerEnvironmentLabel({ cwdBaseName: "t3code", platform: "win32", hostname: "macbook-pro", }).pipe(Effect.provide(testLayer())); assert.equal(result, "macbook-pro"); }), ); it.effect("prefers the macOS ComputerName", () => Effect.gen(function* () { const calls: CommandCall[] = []; const result = yield* resolveServerEnvironmentLabel({ cwdBaseName: "t3code", platform: "darwin", hostname: "macbook-pro", }).pipe( Effect.provide( testLayer( commandRunnerLayer({ calls, run: () => Effect.succeed({ stdout: " Julius's MacBook Pro \n", exitCode: 0 }), }), ), ), ); assert.equal(result, "Julius's MacBook Pro"); assert.deepEqual(calls, [{ command: "scutil", args: ["--get", "ComputerName"] }]); }), ); it.effect("prefers Linux PRETTY_HOSTNAME from machine-info", () => Effect.gen(function* () { const result = yield* resolveServerEnvironmentLabel({ cwdBaseName: "t3code", platform: "linux", hostname: "buildbox", }).pipe( Effect.provide( Layer.merge( FileSystem.layerNoop({ exists: (path) => Effect.succeed(path === "/etc/machine-info"), readFileString: (path) => path === "/etc/machine-info" ? Effect.succeed('PRETTY_HOSTNAME="Build Agent 01"\nICON_NAME="computer-vm"\n') : Effect.succeed(""), }), NoopCommandRunnerLayer, ), ), ); assert.equal(result, "Build Agent 01"); }), ); it.effect("falls back to hostnamectl pretty hostname on Linux", () => Effect.gen(function* () { const calls: CommandCall[] = []; const result = yield* resolveServerEnvironmentLabel({ cwdBaseName: "t3code", platform: "linux", hostname: "runner-01", }).pipe( Effect.provide( testLayer( commandRunnerLayer({ calls, run: () => Effect.succeed({ stdout: "CI Runner\n", exitCode: 0 }), }), ), ), ); assert.equal(result, "CI Runner"); assert.deepEqual(calls, [{ command: "hostnamectl", args: ["--pretty"] }]); }), ); it.effect("falls back to the hostname when friendly labels are unavailable", () => Effect.gen(function* () { const result = yield* resolveServerEnvironmentLabel({ cwdBaseName: "t3code", platform: "win32", hostname: "JULIUS-LAPTOP", }).pipe(Effect.provide(testLayer())); assert.equal(result, "JULIUS-LAPTOP"); }), ); it.effect("falls back to the hostname when the friendly-label command is missing", () => Effect.gen(function* () { const result = yield* resolveServerEnvironmentLabel({ cwdBaseName: "t3code", platform: "darwin", hostname: "macbook-pro", }).pipe( Effect.provide( testLayer( commandRunnerLayer({ run: (command, args) => Effect.fail( new ServerEnvironmentLabelCommandError({ command, args: [...args], message: "spawn scutil ENOENT", }), ), }), ), ), ); assert.equal(result, "macbook-pro"); }), ); it.effect("falls back to the cwd basename when the hostname is blank", () => Effect.gen(function* () { const result = yield* resolveServerEnvironmentLabel({ cwdBaseName: "t3code", platform: "linux", hostname: " ", }).pipe( Effect.provide( testLayer( commandRunnerLayer({ run: () => Effect.succeed({ stdout: " ", exitCode: 0 }), }), ), ), ); assert.equal(result, "t3code"); }), );});
import { assert, describe, it } from "@effect/vitest";
import * as Effect from "effect/Effect";
import * as FileSystem from "effect/FileSystem";
import * as Layer from "effect/Layer";
import {
ServerEnvironmentLabelCommandError,
ServerEnvironmentLabelCommandRunner,
resolveServerEnvironmentLabel,
} from "./ServerEnvironmentLabel.ts";
const NoopFileSystemLayer = FileSystem.layerNoop({});
const NoopCommandRunnerLayer = Layer.mock(ServerEnvironmentLabelCommandRunner)({});
interface CommandCall {
readonly command: string;
readonly args: readonly string[];
}
function commandRunnerLayer(input: {
readonly calls?: CommandCall[];
readonly run: (
command: string,
args: readonly string[],
) => Effect.Effect<
{ readonly stdout: string; readonly exitCode: number },
ServerEnvironmentLabelCommandError
>;
}) {
return Layer.mock(ServerEnvironmentLabelCommandRunner)({
run: (command, args) =>
Effect.gen(function* () {
input.calls?.push({ command, args });
return yield* input.run(command, args);
}),
});
}
function testLayer(commandLayer = NoopCommandRunnerLayer) {
return Layer.merge(NoopFileSystemLayer, commandLayer);
}
describe("resolveServerEnvironmentLabel", () => {
it.effect("uses hostname fallback regardless of launch mode", () =>
Effect.gen(function* () {
const result = yield* resolveServerEnvironmentLabel({
cwdBaseName: "t3code",
platform: "win32",
hostname: "macbook-pro",
}).pipe(Effect.provide(testLayer()));
assert.equal(result, "macbook-pro");
}),
);
it.effect("prefers the macOS ComputerName", () =>
Effect.gen(function* () {
const calls: CommandCall[] = [];
const result = yield* resolveServerEnvironmentLabel({
cwdBaseName: "t3code",
platform: "darwin",
hostname: "macbook-pro",
}).pipe(
Effect.provide(
testLayer(
commandRunnerLayer({
calls,
run: () => Effect.succeed({ stdout: " Julius's MacBook Pro \n", exitCode: 0 }),
}),
),
),
);
assert.equal(result, "Julius's MacBook Pro");
assert.deepEqual(calls, [{ command: "scutil", args: ["--get", "ComputerName"] }]);
}),
);
it.effect("prefers Linux PRETTY_HOSTNAME from machine-info", () =>
Effect.gen(function* () {
const result = yield* resolveServerEnvironmentLabel({
cwdBaseName: "t3code",
platform: "linux",
hostname: "buildbox",
}).pipe(
Effect.provide(
Layer.merge(
FileSystem.layerNoop({
exists: (path) => Effect.succeed(path === "/etc/machine-info"),
readFileString: (path) =>
path === "/etc/machine-info"
? Effect.succeed('PRETTY_HOSTNAME="Build Agent 01"\nICON_NAME="computer-vm"\n')
: Effect.succeed(""),
}),
NoopCommandRunnerLayer,
),
),
);
assert.equal(result, "Build Agent 01");
}),
);
it.effect("falls back to hostnamectl pretty hostname on Linux", () =>
Effect.gen(function* () {
const calls: CommandCall[] = [];
const result = yield* resolveServerEnvironmentLabel({
cwdBaseName: "t3code",
platform: "linux",
hostname: "runner-01",
}).pipe(
Effect.provide(
testLayer(
commandRunnerLayer({
calls,
run: () => Effect.succeed({ stdout: "CI Runner\n", exitCode: 0 }),
}),
),
),
);
assert.equal(result, "CI Runner");
assert.deepEqual(calls, [{ command: "hostnamectl", args: ["--pretty"] }]);
}),
);
it.effect("falls back to the hostname when friendly labels are unavailable", () =>
Effect.gen(function* () {
const result = yield* resolveServerEnvironmentLabel({
cwdBaseName: "t3code",
platform: "win32",
hostname: "JULIUS-LAPTOP",
}).pipe(Effect.provide(testLayer()));
assert.equal(result, "JULIUS-LAPTOP");
}),
);
it.effect("falls back to the hostname when the friendly-label command is missing", () =>
Effect.gen(function* () {
const result = yield* resolveServerEnvironmentLabel({
cwdBaseName: "t3code",
platform: "darwin",
hostname: "macbook-pro",
}).pipe(
Effect.provide(
testLayer(
commandRunnerLayer({
run: (command, args) =>
Effect.fail(
new ServerEnvironmentLabelCommandError({
command,
args: [...args],
message: "spawn scutil ENOENT",
}),
),
}),
),
),
);
assert.equal(result, "macbook-pro");
}),
);
it.effect("falls back to the cwd basename when the hostname is blank", () =>
Effect.gen(function* () {
const result = yield* resolveServerEnvironmentLabel({
cwdBaseName: "t3code",
platform: "linux",
hostname: " ",
}).pipe(
Effect.provide(
testLayer(
commandRunnerLayer({
run: () => Effect.succeed({ stdout: " ", exitCode: 0 }),
}),
),
),
);
assert.equal(result, "t3code");
}),
);
});