feat: implement ERP authentication service
Implement ErpAuthService with TDD approach: - Add login(), close(), getSession(), isActive() methods - Use Playwright chromium with headless:false for debugging - Manage browser lifecycle and session state - Handle authentication flow with ERP_LOCATORS - Add integration tests for login scenarios - Add unit tests for session management - Fix dotenv config path in test setup Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
40
tests/integration/erp-auth.test.ts
Normal file
40
tests/integration/erp-auth.test.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
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;
|
||||
const config: ErpConfig = {
|
||||
url: process.env.ERP_URL || '',
|
||||
username: process.env.ERP_USERNAME || '',
|
||||
password: process.env.ERP_PASSWORD || '',
|
||||
};
|
||||
|
||||
beforeAll(() => {
|
||||
if (!config.url || !config.username || !config.password) {
|
||||
throw new Error('Missing ERP credentials in environment variables');
|
||||
}
|
||||
authService = new ErpAuthService(config);
|
||||
});
|
||||
|
||||
it('should login successfully', async () => {
|
||||
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 () => {
|
||||
const session = await authService.login();
|
||||
|
||||
const url = session.page.url();
|
||||
expect(url).toContain(config.url);
|
||||
}, 30000);
|
||||
|
||||
afterAll(async () => {
|
||||
await authService?.close();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user