55 lines
2.0 KiB
JavaScript
55 lines
2.0 KiB
JavaScript
import { createAnonymousSessionAdapter } from "../../src/adapters/auth/external-session-adapter.js";
|
|
import { createApplication } from "../../src/application/create-application.js";
|
|
|
|
/**
|
|
* @param {{
|
|
* session?: import("../../src/application/ports/auth-session-port.js").AuthSessionPort,
|
|
* preferences?: import("../../src/application/ports/storage-port.js").StoragePort,
|
|
* diagnostics?: import("../../src/application/ports/telemetry-port.js").TelemetryPort,
|
|
* releaseInfo?: import("../../src/application/ports/release-info-port.js").ReleaseInfoPort,
|
|
* navigation?: { reload(): void },
|
|
* featureInputs?: Readonly<Record<string, unknown>>
|
|
* }} [overrides]
|
|
*/
|
|
export function createTestApplication(overrides = {}) {
|
|
return createApplication(
|
|
{
|
|
session: overrides.session ?? createAnonymousSessionAdapter(),
|
|
preferences:
|
|
overrides.preferences ??
|
|
{
|
|
read: () => ({ ok: /** @type {const} */ (true), value: "system" }),
|
|
write: () => ({ ok: /** @type {const} */ (true) }),
|
|
remove: () => ({ ok: /** @type {const} */ (true) }),
|
|
},
|
|
diagnostics: overrides.diagnostics ?? { emit: () => {} },
|
|
releaseInfo:
|
|
overrides.releaseInfo ??
|
|
{
|
|
getCurrent: async () => ({
|
|
buildId: "test-build",
|
|
releaseId: "test-release",
|
|
configSchemaVersion: "1",
|
|
apiContractVersion: "1",
|
|
assetManifestHash: "test-hash",
|
|
routeChunks: {
|
|
"route-home": "assets/home.js",
|
|
},
|
|
}),
|
|
refresh: async () => ({
|
|
buildId: "test-build",
|
|
releaseId: "test-release",
|
|
configSchemaVersion: "1",
|
|
apiContractVersion: "1",
|
|
assetManifestHash: "test-hash",
|
|
routeChunks: {
|
|
"route-home": "assets/home.js",
|
|
},
|
|
}),
|
|
},
|
|
navigation: overrides.navigation ?? { reload: () => {} },
|
|
},
|
|
overrides.featureInputs,
|
|
);
|
|
}
|