homeio
PublicForked from doctor-io/homeio
compose-parser.test.ts
import { describe, expect, it } from "vitest";
import {
extractPrimaryServiceWithName,
parseComposeFile,
} from "@/lib/server/modules/docker/compose-parser";
describe("compose-parser primary service selection", () => {
it("prefers app service over db sidecar for appId matches", () => {
const compose = `services:
app:
image: photoprism/photoprism:240915
ports:
- "2342:2342"
photoprism-db:
image: mariadb:10.8
`;
const parsed = parseComposeFile(compose);
expect(parsed).not.toBeNull();
const primary = extractPrimaryServiceWithName(parsed!, "photoprism");
expect(primary?.name).toBe("app");
expect(primary?.service.image).toBe("photoprism/photoprism:240915");
expect(primary?.service.ports?.[0]).toBe("2342:2342");
});
});