import type { ManagementGateway } from "../../src/features/tech-log/application/ports/management-gateway.ts";
/**
* Studio 화면 테스트가 `StudioProvider` 를 렌더할 때 필요한 최소 관리 게이트웨이.
*
*
기본값은 "아무것도 없음" 이다. 이 하네스들은 문서·Asset 흐름을 검증하지 아니 주제·프로젝트
* 관리를 검증하지 않으므로, 호출되면 빈 목록을 주고 쓰기는 거부한다 — 조용히 성공시키면 관리
* 표면을 실수로 건드리는 테스트가 통과해 버린다.
*/
export function createManagementGatewayStub(
overrides: Partial = {},
): ManagementGateway {
const unused = (name: string) => async (): Promise => {
throw new Error(`management gateway ${name} was not stubbed for this test`);
};
return Object.freeze({
listTopics: async () => [],
listProjects: async () => ({ items: [], page: {} }) as never,
createTopic: unused("createTopic"),
updateTopic: unused("updateTopic"),
deleteTopic: unused("deleteTopic"),
getProject: unused("getProject"),
createProject: unused("createProject"),
updateProject: unused("updateProject"),
deleteProject: unused("deleteProject"),
...overrides,
}) as ManagementGateway;
}