Wires the whole Asset capability into the running application: the multipart upload transport (the contract runtime can only express JSON bodies), a single composition-root-owned CSRF provider shared between the platform's credential collaborator (18 JSON operations) and the upload transport (1 multipart operation), and Studio/StudioShell exposure of the Asset gateway alongside the existing document gateway. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
31 lines
996 B
TypeScript
31 lines
996 B
TypeScript
import { describe, expect, it } from "vitest";
|
|
|
|
import type { ApplicationFeatureInputs } from "../../../src/application/ports/in/application-api.ts";
|
|
import {
|
|
TECH_LOG_FEATURE_ID,
|
|
type TechLogFeatureInput,
|
|
} from "../../../src/features/tech-log/application/tech-log-feature-input.ts";
|
|
|
|
type Equal<Left, Right> =
|
|
(<Value>() => Value extends Left ? 1 : 2) extends
|
|
(<Value>() => Value extends Right ? 1 : 2)
|
|
? true
|
|
: false;
|
|
type Assert<Condition extends true> = Condition;
|
|
|
|
type TechLogFeatureInputExposesNoMissingOrAdditionalKeys = Assert<
|
|
Equal<
|
|
keyof ApplicationFeatureInputs["tech-log"],
|
|
"publicContent" | "createStudioGateway" | "createStudioAssetGateway"
|
|
>
|
|
>;
|
|
type TechLogFeatureInputRegistryValueMatchesFeatureContract = Assert<
|
|
Equal<ApplicationFeatureInputs["tech-log"], TechLogFeatureInput>
|
|
>;
|
|
|
|
describe("TechLog feature input", () => {
|
|
it("uses the fixed application feature identifier", () => {
|
|
expect(TECH_LOG_FEATURE_ID).toBe("tech-log");
|
|
});
|
|
});
|