refactor(features): rename mock/payload/interface files per Lazar pattern
Convention now: <name>.repository.{ts,mock.ts,interface.ts}.
Renames .mock prefix to .mock suffix; drops .payload prefix from real
impls (canonical name = real impl); dot-separates the .repository
qualifier in interface filenames. Class names follow suit:
PayloadXRepository → XRepository; Mock* unchanged.
Refactor log: §1, §3
Spec: §9.1
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { it, expect, beforeEach } from "vitest";
|
||||
import { defineContractSuite } from "@repo/core-testing/contract";
|
||||
import type { IPagesRepository } from "../application/repositories/pages-repository.interface.js";
|
||||
import type { IPagesRepository } from "../application/repositories/pages.repository.interface.js";
|
||||
import type { Page } from "../entities/models/page.js";
|
||||
|
||||
const SEED_DATE = new Date("2026-01-01T00:00:00.000Z");
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { it, expect, beforeEach } from "vitest";
|
||||
import { defineContractSuite } from "@repo/core-testing/contract";
|
||||
import type { ISiteSettingsRepository } from "../application/repositories/site-settings-repository.interface.js";
|
||||
import type { ISiteSettingsRepository } from "../application/repositories/site-settings.repository.interface.js";
|
||||
|
||||
/**
|
||||
* Contract for ISiteSettingsRepository.
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { beforeEach, describe, expect, it } from "vitest";
|
||||
import { marketingPagesContainer } from "@/di/container";
|
||||
import { MARKETING_PAGES_SYMBOLS } from "@/di/symbols";
|
||||
import { MockPagesRepository } from "@/infrastructure/repositories/mock-pages.repository";
|
||||
import type { IPagesRepository } from "@/application/repositories/pages-repository.interface";
|
||||
import { MockPagesRepository } from "@/infrastructure/repositories/pages.repository.mock";
|
||||
import type { IPagesRepository } from "@/application/repositories/pages.repository.interface";
|
||||
import { getPageBySlugUseCase } from "./get-page-by-slug.use-case";
|
||||
|
||||
describe("getPageBySlugUseCase", () => {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import type { Page } from "../../entities/models/page";
|
||||
import { marketingPagesContainer } from "../../di/container";
|
||||
import { MARKETING_PAGES_SYMBOLS } from "../../di/symbols";
|
||||
import type { IPagesRepository } from "../repositories/pages-repository.interface";
|
||||
import type { IPagesRepository } from "../repositories/pages.repository.interface";
|
||||
|
||||
export async function getPageBySlugUseCase(
|
||||
slug: string,
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { beforeEach, describe, expect, it } from "vitest";
|
||||
import { marketingPagesContainer } from "@/di/container";
|
||||
import { MARKETING_PAGES_SYMBOLS } from "@/di/symbols";
|
||||
import { MockSiteSettingsRepository } from "@/infrastructure/repositories/mock-site-settings.repository";
|
||||
import type { ISiteSettingsRepository } from "@/application/repositories/site-settings-repository.interface";
|
||||
import { MockSiteSettingsRepository } from "@/infrastructure/repositories/site-settings.repository.mock";
|
||||
import type { ISiteSettingsRepository } from "@/application/repositories/site-settings.repository.interface";
|
||||
import { getSiteSettingsUseCase } from "./get-site-settings.use-case";
|
||||
|
||||
describe("getSiteSettingsUseCase", () => {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import type { SiteSettings } from "../../entities/models/site-settings";
|
||||
import { marketingPagesContainer } from "../../di/container";
|
||||
import { MARKETING_PAGES_SYMBOLS } from "../../di/symbols";
|
||||
import type { ISiteSettingsRepository } from "../repositories/site-settings-repository.interface";
|
||||
import type { ISiteSettingsRepository } from "../repositories/site-settings.repository.interface";
|
||||
|
||||
export async function getSiteSettingsUseCase(): Promise<SiteSettings> {
|
||||
const repo = marketingPagesContainer.get<ISiteSettingsRepository>(
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import type { SanitizedConfig } from "payload";
|
||||
import { marketingPagesContainer } from "./container";
|
||||
import { MARKETING_PAGES_SYMBOLS } from "./symbols";
|
||||
import { PayloadPagesRepository } from "../infrastructure/repositories/payload-pages.repository";
|
||||
import { PayloadSiteSettingsRepository } from "../infrastructure/repositories/payload-site-settings.repository";
|
||||
import { PagesRepository } from "../infrastructure/repositories/pages.repository";
|
||||
import { SiteSettingsRepository } from "../infrastructure/repositories/site-settings.repository";
|
||||
|
||||
export function bindProductionMarketingPages(config: SanitizedConfig): void {
|
||||
if (
|
||||
@@ -12,7 +12,7 @@ export function bindProductionMarketingPages(config: SanitizedConfig): void {
|
||||
}
|
||||
marketingPagesContainer
|
||||
.bind(MARKETING_PAGES_SYMBOLS.IPagesRepository)
|
||||
.toConstantValue(new PayloadPagesRepository(config));
|
||||
.toConstantValue(new PagesRepository(config));
|
||||
|
||||
if (
|
||||
marketingPagesContainer.isBound(
|
||||
@@ -25,5 +25,5 @@ export function bindProductionMarketingPages(config: SanitizedConfig): void {
|
||||
}
|
||||
marketingPagesContainer
|
||||
.bind(MARKETING_PAGES_SYMBOLS.ISiteSettingsRepository)
|
||||
.toConstantValue(new PayloadSiteSettingsRepository(config));
|
||||
.toConstantValue(new SiteSettingsRepository(config));
|
||||
}
|
||||
|
||||
@@ -2,10 +2,10 @@ import { afterEach, beforeEach, describe, expect, it } from "vitest";
|
||||
import { marketingPagesContainer } from "./container";
|
||||
import { MARKETING_PAGES_SYMBOLS } from "./symbols";
|
||||
import { MarketingPagesModule } from "./module";
|
||||
import { MockPagesRepository } from "@/infrastructure/repositories/mock-pages.repository";
|
||||
import { MockSiteSettingsRepository } from "@/infrastructure/repositories/mock-site-settings.repository";
|
||||
import type { IPagesRepository } from "@/application/repositories/pages-repository.interface";
|
||||
import type { ISiteSettingsRepository } from "@/application/repositories/site-settings-repository.interface";
|
||||
import { MockPagesRepository } from "@/infrastructure/repositories/pages.repository.mock";
|
||||
import { MockSiteSettingsRepository } from "@/infrastructure/repositories/site-settings.repository.mock";
|
||||
import type { IPagesRepository } from "@/application/repositories/pages.repository.interface";
|
||||
import type { ISiteSettingsRepository } from "@/application/repositories/site-settings.repository.interface";
|
||||
|
||||
describe("marketingPagesContainer", () => {
|
||||
beforeEach(() => {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { ContainerModule, type interfaces } from "inversify";
|
||||
|
||||
import type { IPagesRepository } from "../application/repositories/pages-repository.interface";
|
||||
import type { ISiteSettingsRepository } from "../application/repositories/site-settings-repository.interface";
|
||||
import { MockPagesRepository } from "../infrastructure/repositories/mock-pages.repository";
|
||||
import { MockSiteSettingsRepository } from "../infrastructure/repositories/mock-site-settings.repository";
|
||||
import type { IPagesRepository } from "../application/repositories/pages.repository.interface";
|
||||
import type { ISiteSettingsRepository } from "../application/repositories/site-settings.repository.interface";
|
||||
import { MockPagesRepository } from "../infrastructure/repositories/pages.repository.mock";
|
||||
import { MockSiteSettingsRepository } from "../infrastructure/repositories/site-settings.repository.mock";
|
||||
import { MARKETING_PAGES_SYMBOLS } from "./symbols";
|
||||
|
||||
export const MarketingPagesModule = new ContainerModule(
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { describe } from "vitest";
|
||||
import { MockPagesRepository } from "@/infrastructure/repositories/mock-pages.repository";
|
||||
import { MockPagesRepository } from "@/infrastructure/repositories/pages.repository.mock";
|
||||
import {
|
||||
pagesRepositoryContract,
|
||||
CONTRACT_PAGES_SEED,
|
||||
@@ -1,7 +1,7 @@
|
||||
import "reflect-metadata";
|
||||
import { injectable } from "inversify";
|
||||
|
||||
import type { IPagesRepository } from "../../application/repositories/pages-repository.interface";
|
||||
import type { IPagesRepository } from "../../application/repositories/pages.repository.interface";
|
||||
import type { Page } from "../../entities/models/page";
|
||||
|
||||
const SEED_DATE = new Date("2026-01-01T00:00:00.000Z");
|
||||
@@ -1,5 +1,5 @@
|
||||
import { describe, vi } from "vitest";
|
||||
import { PayloadPagesRepository } from "@/infrastructure/repositories/payload-pages.repository";
|
||||
import { PagesRepository } from "@/infrastructure/repositories/pages.repository";
|
||||
import {
|
||||
pagesRepositoryContract,
|
||||
CONTRACT_PAGES_SEED,
|
||||
@@ -71,13 +71,13 @@ vi.mock("payload", () => ({
|
||||
// Contract suite
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
describe("PayloadPagesRepository", () => {
|
||||
describe("PagesRepository", () => {
|
||||
describe("contract", () => {
|
||||
pagesRepositoryContract.run(async () => {
|
||||
const stub = buildPayloadPagesStub(CONTRACT_PAGES_SEED);
|
||||
const { getPayload } = await import("payload");
|
||||
(getPayload as ReturnType<typeof vi.fn>).mockResolvedValue(stub);
|
||||
return new PayloadPagesRepository(stubPayloadConfig);
|
||||
return new PagesRepository(stubPayloadConfig);
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -3,7 +3,7 @@ import { injectable } from "inversify";
|
||||
import { getPayload } from "payload";
|
||||
import type { SanitizedConfig } from "payload";
|
||||
|
||||
import type { IPagesRepository } from "../../application/repositories/pages-repository.interface";
|
||||
import type { IPagesRepository } from "../../application/repositories/pages.repository.interface";
|
||||
import type { Page } from "../../entities/models/page";
|
||||
|
||||
type PayloadPageDoc = {
|
||||
@@ -55,7 +55,7 @@ function mapDoc(doc: PayloadPageDoc): Page {
|
||||
}
|
||||
|
||||
@injectable()
|
||||
export class PayloadPagesRepository implements IPagesRepository {
|
||||
export class PagesRepository implements IPagesRepository {
|
||||
private config: SanitizedConfig;
|
||||
|
||||
constructor(config: SanitizedConfig) {
|
||||
@@ -1,5 +1,5 @@
|
||||
import { describe } from "vitest";
|
||||
import { MockSiteSettingsRepository } from "@/infrastructure/repositories/mock-site-settings.repository";
|
||||
import { MockSiteSettingsRepository } from "@/infrastructure/repositories/site-settings.repository.mock";
|
||||
import { siteSettingsRepositoryContract } from "@/__contracts__/site-settings-repository.contract";
|
||||
|
||||
describe("MockSiteSettingsRepository", () => {
|
||||
@@ -1,7 +1,7 @@
|
||||
import "reflect-metadata";
|
||||
import { injectable } from "inversify";
|
||||
|
||||
import type { ISiteSettingsRepository } from "../../application/repositories/site-settings-repository.interface";
|
||||
import type { ISiteSettingsRepository } from "../../application/repositories/site-settings.repository.interface";
|
||||
import type { SiteSettings } from "../../entities/models/site-settings";
|
||||
|
||||
@injectable()
|
||||
@@ -1,5 +1,5 @@
|
||||
import { describe, vi } from "vitest";
|
||||
import { PayloadSiteSettingsRepository } from "@/infrastructure/repositories/payload-site-settings.repository";
|
||||
import { SiteSettingsRepository } from "@/infrastructure/repositories/site-settings.repository";
|
||||
import { siteSettingsRepositoryContract } from "@/__contracts__/site-settings-repository.contract";
|
||||
import { stubPayloadConfig } from "@repo/core-testing/payload/stub-config";
|
||||
|
||||
@@ -28,13 +28,13 @@ vi.mock("payload", () => ({
|
||||
// Contract suite
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
describe("PayloadSiteSettingsRepository", () => {
|
||||
describe("SiteSettingsRepository", () => {
|
||||
describe("contract", () => {
|
||||
siteSettingsRepositoryContract.run(async () => {
|
||||
const stub = buildSiteSettingsStub();
|
||||
const { getPayload } = await import("payload");
|
||||
(getPayload as ReturnType<typeof vi.fn>).mockResolvedValue(stub);
|
||||
return new PayloadSiteSettingsRepository(stubPayloadConfig);
|
||||
return new SiteSettingsRepository(stubPayloadConfig);
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -3,7 +3,7 @@ import { injectable } from "inversify";
|
||||
import { getPayload } from "payload";
|
||||
import type { SanitizedConfig } from "payload";
|
||||
|
||||
import type { ISiteSettingsRepository } from "../../application/repositories/site-settings-repository.interface";
|
||||
import type { ISiteSettingsRepository } from "../../application/repositories/site-settings.repository.interface";
|
||||
import type { SiteSettings } from "../../entities/models/site-settings";
|
||||
|
||||
type PayloadSiteSettings = {
|
||||
@@ -12,7 +12,7 @@ type PayloadSiteSettings = {
|
||||
};
|
||||
|
||||
@injectable()
|
||||
export class PayloadSiteSettingsRepository implements ISiteSettingsRepository {
|
||||
export class SiteSettingsRepository implements ISiteSettingsRepository {
|
||||
private config: SanitizedConfig;
|
||||
|
||||
constructor(config: SanitizedConfig) {
|
||||
@@ -1,10 +1,10 @@
|
||||
import { beforeEach, describe, expect, it } from "vitest";
|
||||
import { marketingPagesContainer } from "@/di/container";
|
||||
import { MARKETING_PAGES_SYMBOLS } from "@/di/symbols";
|
||||
import { MockPagesRepository } from "@/infrastructure/repositories/mock-pages.repository";
|
||||
import { MockSiteSettingsRepository } from "@/infrastructure/repositories/mock-site-settings.repository";
|
||||
import type { IPagesRepository } from "@/application/repositories/pages-repository.interface";
|
||||
import type { ISiteSettingsRepository } from "@/application/repositories/site-settings-repository.interface";
|
||||
import { MockPagesRepository } from "@/infrastructure/repositories/pages.repository.mock";
|
||||
import { MockSiteSettingsRepository } from "@/infrastructure/repositories/site-settings.repository.mock";
|
||||
import type { IPagesRepository } from "@/application/repositories/pages.repository.interface";
|
||||
import type { ISiteSettingsRepository } from "@/application/repositories/site-settings.repository.interface";
|
||||
import { marketingPagesRouter } from "./router";
|
||||
|
||||
describe("marketingPagesRouter", () => {
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { beforeEach, describe, expect, it } from "vitest";
|
||||
import { marketingPagesContainer } from "@/di/container";
|
||||
import { MARKETING_PAGES_SYMBOLS } from "@/di/symbols";
|
||||
import { MockPagesRepository } from "@/infrastructure/repositories/mock-pages.repository";
|
||||
import { MockSiteSettingsRepository } from "@/infrastructure/repositories/mock-site-settings.repository";
|
||||
import type { IPagesRepository } from "@/application/repositories/pages-repository.interface";
|
||||
import type { ISiteSettingsRepository } from "@/application/repositories/site-settings-repository.interface";
|
||||
import { MockPagesRepository } from "@/infrastructure/repositories/pages.repository.mock";
|
||||
import { MockSiteSettingsRepository } from "@/infrastructure/repositories/site-settings.repository.mock";
|
||||
import type { IPagesRepository } from "@/application/repositories/pages.repository.interface";
|
||||
import type { ISiteSettingsRepository } from "@/application/repositories/site-settings.repository.interface";
|
||||
import { InputParseError } from "@/entities/errors/common";
|
||||
import {
|
||||
getPageBySlugController,
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { beforeEach, describe, expect, it } from "vitest";
|
||||
import { marketingPagesContainer } from "../src/di/container";
|
||||
import { MARKETING_PAGES_SYMBOLS } from "../src/di/symbols";
|
||||
import { MockPagesRepository } from "../src/infrastructure/repositories/mock-pages.repository";
|
||||
import { MockSiteSettingsRepository } from "../src/infrastructure/repositories/mock-site-settings.repository";
|
||||
import type { IPagesRepository } from "../src/application/repositories/pages-repository.interface";
|
||||
import type { ISiteSettingsRepository } from "../src/application/repositories/site-settings-repository.interface";
|
||||
import { MockPagesRepository } from "../src/infrastructure/repositories/pages.repository.mock";
|
||||
import { MockSiteSettingsRepository } from "../src/infrastructure/repositories/site-settings.repository.mock";
|
||||
import type { IPagesRepository } from "../src/application/repositories/pages.repository.interface";
|
||||
import type { ISiteSettingsRepository } from "../src/application/repositories/site-settings.repository.interface";
|
||||
import { marketingPagesRouter } from "../src/integrations/api/router";
|
||||
|
||||
describe("marketing-pages feature: page-by-slug end-to-end", () => {
|
||||
|
||||
Reference in New Issue
Block a user