refactor: 리펙토링

This commit is contained in:
DongHyeonka
2026-08-01 19:39:59 +09:00
parent 9c959ea2a5
commit c6da03369c
171 changed files with 20329 additions and 782 deletions
@@ -0,0 +1,28 @@
import { describe, expect, it } from "vitest";
import type { IndexedDbRepositoryPort } from "../../src/application/ports/browser-file-storage/indexeddb-port.ts";
import type {
PushControlRepository,
} from "../../src/adapters/web-push/push-association-fence-store.ts";
import type { PushControlV1 } from "../../src/contracts/web-push.ts";
/**
* The Web Push fence store declares its own narrow durable-store port so the
* Web Push and browser file/storage capabilities stay independently removable.
*
* This suite is what keeps that decoupling honest: it asserts at type level
* that the generic IndexedDB repository still satisfies the narrow port, so the
* composition root can join the two without an adapter shim. It lives in the
* browser-data import graph on purpose, so the storage removal harness drops it
* along with the runtime it checks.
*/
describe("push control store port compatibility", () => {
it("is satisfied by the generic IndexedDB repository", () => {
type GenericRepository = IndexedDbRepositoryPort<PushControlV1, never>;
const satisfiesNarrowPort = (
repository: GenericRepository,
): PushControlRepository => repository;
expect(typeof satisfiesNarrowPort).toBe("function");
});
});