refactor: 리펙토링
This commit is contained in:
@@ -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 });
|
||||
}
|
||||
Reference in New Issue
Block a user