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
+3
View File
@@ -4,6 +4,7 @@ import {
type ApplicationOutputPorts,
} from "../../src/application/create-application.ts";
import type { ApplicationFeatureInputs } from "../../src/application/ports/in/application-api.ts";
import { createRuntimeCapabilitiesStub } from "./runtime-capabilities-stub.ts";
type TestApplicationOverrides = Partial<ApplicationOutputPorts> &
Readonly<{
@@ -49,6 +50,8 @@ export function createTestApplication(
},
}),
},
runtimeCapabilities:
overrides.runtimeCapabilities ?? createRuntimeCapabilitiesStub(),
navigation: overrides.navigation ?? { reload: () => {} },
},
overrides.featureInputs,
@@ -0,0 +1,34 @@
import type {
RuntimeCapabilityId,
RuntimeCapabilityStatus,
} from "../../src/contracts/runtime-capabilities.ts";
import type { RuntimeCapabilitiesPort } from "../../src/application/ports/runtime-capabilities-port.ts";
const CAPABILITY_IDS = Object.freeze([
"REALTIME",
"WEB_WORKER",
"SERVICE_WORKER",
"OFFLINE_COMMANDS",
] as const);
/**
* A capability port whose snapshot is fixed by the test rather than by the
* repository's installed selection, so a suite asserting presentation behaviour
* does not change meaning when a capability is later installed.
*/
export function createRuntimeCapabilitiesStub(
overrides: Readonly<Partial<Record<RuntimeCapabilityId, Partial<RuntimeCapabilityStatus>>>> = {},
): RuntimeCapabilitiesPort {
const snapshot = Object.freeze(
CAPABILITY_IDS.map((capabilityId) =>
Object.freeze({
capabilityId,
selected: 0,
active: 0,
override: "DEFAULT" as const,
...overrides[capabilityId],
}),
),
);
return Object.freeze({ getSnapshot: () => snapshot });
}