36 lines
801 B
JavaScript
36 lines
801 B
JavaScript
import assert from "node:assert/strict";
|
|
import { test } from "node:test";
|
|
import { parseComposeImages } from "../src/compose-parser.js";
|
|
|
|
test("extracts service images from compose content", () => {
|
|
const compose = `
|
|
services:
|
|
web:
|
|
image: nginx:1.27
|
|
api:
|
|
build: .
|
|
image: "ghcr.io/example/api:main" # comment
|
|
networks:
|
|
default:
|
|
`;
|
|
|
|
assert.deepEqual(parseComposeImages(compose), [
|
|
{ service: "web", image: "nginx:1.27", line: 4 },
|
|
{ service: "api", image: "ghcr.io/example/api:main", line: 7 },
|
|
]);
|
|
});
|
|
|
|
test("ignores top-level image keys outside services", () => {
|
|
const compose = `
|
|
x-template:
|
|
image: ignored
|
|
services:
|
|
worker:
|
|
image: alpine
|
|
`;
|
|
|
|
assert.deepEqual(parseComposeImages(compose), [
|
|
{ service: "worker", image: "alpine", line: 6 },
|
|
]);
|
|
});
|