// src/services/interfaces.test.ts - NEW FILE
import { describe, expect, it } from "vitest";
import type { ComposeProject, HostConfig } from "../types.js";
import type { IComposeProjectLister } from "./interfaces.js";
describe("IComposeProjectLister", () => {
it("should be implemented with listComposeProjects method", async () => {
const mockLister: IComposeProjectLister = {
listComposeProjects: async (_host: HostConfig): Promise<ComposeProject[]> => {
return [
{
name: "test-project",
status: "running",
configFiles: ["/compose/test/docker-compose.yaml"],
services: [],
},
];
},
};
const host: HostConfig = {
name: "test",
host: "localhost",
protocol: "ssh",
};
const result = await mockLister.listComposeProjects(host);
expect(result).toHaveLength(1);
expect(result[0].name).toBe("test-project");
expect(result[0].configFiles).toContain("/compose/test/docker-compose.yaml");
});
});