Spaces:
Sleeping
Sleeping
| import * as fs from 'fs' | |
| import * as path from 'path' | |
| import * as yaml from 'yaml' | |
| // Strong-typed configuration interface | |
| export interface TestConfig { | |
| api_url: string | |
| frontend_url: string | |
| username: string | |
| auth_token: string | |
| } | |
| // Singleton configuration loader - loads config only once | |
| let config: TestConfig | null = null | |
| export function getTestConfig(): TestConfig { | |
| if (config === null) { | |
| const configPath = path.join(__dirname, '../../client-config.yaml') | |
| const rawConfig = yaml.parse(fs.readFileSync(configPath, 'utf8')) | |
| // Validate required fields | |
| if (!rawConfig.api_url || !rawConfig.frontend_url || !rawConfig.username || !rawConfig.auth_token) { | |
| throw new Error('Invalid test configuration: missing required fields') | |
| } | |
| config = rawConfig as TestConfig | |
| } | |
| return config | |
| } | |
| // Export the typed configuration | |
| export const testConfig: TestConfig = getTestConfig() | |