import { DyNTS_App_Params } from '../../_models/control-models/app-params.control-model'; import { DyNTS_Http_Settings } from '../../_models/control-models/http-settings.control-model'; import { DyNTS_StaticClient_Settings } from '../../_models/interfaces/static-client-settings.interface'; import { DyNTS_AppWbMock_Mock } from './app-extended-server.mock'; /** * Integrációs tesztekhez használt mock app: DB nélkül indul, unified host beállításokkal * (static client root, API base path, socket path). A static root-ot a spec állítja * beforeAll-ban az integrationStaticRoot statikus property-n keresztül. */ export class DyNTS_AppIntegrationTest_Mock extends DyNTS_AppWbMock_Mock { /** A spec beforeAll-ban beállítja; getStaticClientSettings() ezt használja root-ként. */ static integrationStaticRoot: string = ''; override getAppParams(): DyNTS_App_Params { return new DyNTS_App_Params({ name: 'nts-integration-test', version: '1.0.0', systemShortCodeName: 'NIT', }); } override getPortSettings(): DyNTS_Http_Settings { return { httpPort: 0, socketPath: '/socket', }; } /** Az OS által kiosztott tényleges port; ready() után elérhető. */ get resolvedPort(): number { const addr = this.httpServer?.address?.(); return (typeof addr === 'object' && addr) ? addr.port : 0; } override getApiBasePath(): string { return '/api'; } override getStaticClientSettings(): DyNTS_StaticClient_Settings | undefined { if (!DyNTS_AppIntegrationTest_Mock.integrationStaticRoot) { return undefined; } return { root: DyNTS_AppIntegrationTest_Mock.integrationStaticRoot, fallbackPath: undefined, }; } }