import { describe, expect, it } from "vitest"; import { isArm64HostRunningIntelBuild, resolveDesktopRuntimeInfo } from "./runtimeArch.ts"; describe("resolveDesktopRuntimeInfo", () => { it("detects Rosetta-translated Intel builds on Apple Silicon", () => { const runtimeInfo = resolveDesktopRuntimeInfo({ platform: "darwin", processArch: "x64", runningUnderArm64Translation: true, }); expect(runtimeInfo).toEqual({ hostArch: "arm64", appArch: "x64", runningUnderArm64Translation: true, }); expect(isArm64HostRunningIntelBuild(runtimeInfo)).toBe(true); }); it("detects native Apple Silicon builds", () => { const runtimeInfo = resolveDesktopRuntimeInfo({ platform: "darwin", processArch: "arm64", runningUnderArm64Translation: false, }); expect(runtimeInfo).toEqual({ hostArch: "arm64", appArch: "arm64", runningUnderArm64Translation: false, }); expect(isArm64HostRunningIntelBuild(runtimeInfo)).toBe(false); }); it("passes through non-mac builds without translation", () => { const runtimeInfo = resolveDesktopRuntimeInfo({ platform: "linux", processArch: "x64", runningUnderArm64Translation: true, }); expect(runtimeInfo).toEqual({ hostArch: "x64", appArch: "x64", runningUnderArm64Translation: false, }); });});
import { describe, expect, it } from "vitest";
import { isArm64HostRunningIntelBuild, resolveDesktopRuntimeInfo } from "./runtimeArch.ts";
describe("resolveDesktopRuntimeInfo", () => {
it("detects Rosetta-translated Intel builds on Apple Silicon", () => {
const runtimeInfo = resolveDesktopRuntimeInfo({
platform: "darwin",
processArch: "x64",
runningUnderArm64Translation: true,
});
expect(runtimeInfo).toEqual({
hostArch: "arm64",
appArch: "x64",
runningUnderArm64Translation: true,
});
expect(isArm64HostRunningIntelBuild(runtimeInfo)).toBe(true);
});
it("detects native Apple Silicon builds", () => {
const runtimeInfo = resolveDesktopRuntimeInfo({
platform: "darwin",
processArch: "arm64",
runningUnderArm64Translation: false,
});
expect(runtimeInfo).toEqual({
hostArch: "arm64",
appArch: "arm64",
runningUnderArm64Translation: false,
});
expect(isArm64HostRunningIntelBuild(runtimeInfo)).toBe(false);
});
it("passes through non-mac builds without translation", () => {
const runtimeInfo = resolveDesktopRuntimeInfo({
platform: "linux",
processArch: "x64",
runningUnderArm64Translation: true,
});
expect(runtimeInfo).toEqual({
hostArch: "x64",
appArch: "x64",
runningUnderArm64Translation: false,
});
});
});