BREAKING CHANGE: Application now uses config.yaml instead of .env files ## Changes: - Remove dotenv dependency from package.json - Update all services to use ConfigManager for configuration - Update tests to use fixed credentials instead of env vars - Delete obsolete config-manager.test.ts (used old .env API) - Update documentation (README.md, CLAUDE.md) to reflect new config system ## Configuration Architecture: - ConfigManager: Centralized YAML configuration with Zod validation - config.yaml location: - Development: Project root (easy to edit and version control) - Production: User AppData (persists across updates) - ERP credentials: Stored in database (dbo_BIPUsers) per user - Other settings: Stored in config.yaml (database, paths, extraction, etc.) ## Files Modified: - package.json: Removed dotenv dependency - cleaner-handler.ts: Use ConfigManager.getDatabaseType() - run-migration.ts: Read from config.yaml instead of .env - All integration tests: Use fixed test credentials - tests/setup.ts: Removed dotenv loading - README.md, CLAUDE.md: Updated documentation Migration is complete. Application no longer depends on .env files.
58 lines
1.6 KiB
TypeScript
58 lines
1.6 KiB
TypeScript
import { describe, it, expect, beforeAll, afterAll } from 'vitest'
|
|
import { ErpAuthService } from '../../src/main/services/erp/erp-auth'
|
|
import type { ErpConfig } from '../../src/main/types/erp.types'
|
|
|
|
describe('ERP Authentication Service (Integration)', () => {
|
|
let authService: ErpAuthService
|
|
// For integration tests, use fixed test credentials or configure via config.yaml
|
|
const config: ErpConfig = {
|
|
url: '',
|
|
username: '',
|
|
password: ''
|
|
}
|
|
|
|
// Check if we have ERP credentials
|
|
const hasCredentials = !!(config.url && config.username && config.password)
|
|
|
|
beforeAll(() => {
|
|
if (!hasCredentials) {
|
|
console.warn('Skipping ERP auth tests: credentials not configured')
|
|
return
|
|
}
|
|
authService = new ErpAuthService(config)
|
|
})
|
|
|
|
it('should login successfully', async () => {
|
|
if (!hasCredentials) {
|
|
console.warn('Skipping test: ERP credentials not configured')
|
|
return
|
|
}
|
|
|
|
const session = await authService.login()
|
|
|
|
expect(session).toBeDefined()
|
|
expect(session.browser).toBeDefined()
|
|
expect(session.context).toBeDefined()
|
|
expect(session.page).toBeDefined()
|
|
expect(session.isLoggedIn).toBe(true)
|
|
}, 30000)
|
|
|
|
it('should navigate to main page after login', async () => {
|
|
if (!hasCredentials) {
|
|
console.warn('Skipping test: ERP credentials not configured')
|
|
return
|
|
}
|
|
|
|
const session = await authService.login()
|
|
|
|
const url = session.page.url()
|
|
expect(url).toContain(config.url)
|
|
}, 30000)
|
|
|
|
afterAll(async () => {
|
|
if (hasCredentials && authService) {
|
|
await authService.close()
|
|
}
|
|
})
|
|
})
|