FactuGES_ERP/modules/onboarding/src/api/module.composition.test.ts
David bf1dd43c78 feat(onboarding): implement initial onboarding use cases and controllers
- Add GetInitialOnboardingStatusUseCase to retrieve onboarding status.
- Implement CompleteInitialOnboardingUseCase for completing onboarding.
- Create controllers for handling onboarding requests in Express.
- Introduce new repository methods for managing onboarding data.
- Set up dependency injection for onboarding services and use cases.
- Add tests for onboarding use cases and repository methods.
- Define request DTOs for onboarding operations with validation.
- Update module composition to include onboarding functionalities.
2026-09-08 23:41:23 +02:00

35 lines
1.2 KiB
TypeScript

import assert from "node:assert/strict";
import test from "node:test";
import initialOnboardingModelInit from "./infrastructure/persistence/sequelize/models/sequelize-initial-onboarding.model";
import { onboardingModule } from "./module";
test("onboarding composition builds public capabilities and registers its model", async () => {
let provisionCalls = 0;
const initialCompanyCreator = {
create: async () => {
throw new Error("not invoked");
},
};
const initialCompanyAdminAssigner = {
assign: async () => {
throw new Error("not invoked");
},
};
const result = await onboardingModule.setup?.({
database: {} as never,
transactionContext: {} as never,
getService: <T>(name: string) => {
if (name === "companies:general") return { initialCompanyCreator } as T;
if (name === "identity:general") return { initialCompanyAdminAssigner } as T;
throw new Error(`Unexpected service ${name}`);
},
} as never);
assert.ok(result?.services?.general);
assert.deepEqual(result.services.general, {});
assert.ok(result.internal);
assert.ok(result.models?.includes(initialOnboardingModelInit));
assert.equal(provisionCalls, 0);
});