refactor(erp-auth): implement precise login result detection with three outcomes

- Add waitForLoginResult() method using Promise.race to detect:
  - Success: .nc-workbench-icon element visible
  - Failure: '名称或密码错误' error text visible
  - Force login: click confirm button and re-detect
- Extract timeout constants (PAGE_LOAD_TIMEOUT, LOGIN_RESULT_TIMEOUT, FORCE_LOGIN_TIMEOUT)
- Improve error handling with clear error messages
- Add unit tests for class structure verification
- Fix test setup for Electron app mock

Fixes: ERP login success/failure detection was ambiguous
This commit is contained in:
test
2026-03-07 14:07:08 +08:00
parent 1ee33672dd
commit 6f19890a84
5 changed files with 82 additions and 13 deletions

View File

@@ -1,7 +1,17 @@
import { beforeAll, afterAll } from 'vitest'
import { beforeAll, afterAll, vi } from 'vitest'
import dotenv from 'dotenv'
import path from 'path'
// Mock electron app module for unit tests
vi.mock('electron', () => ({
app: {
isPackaged: false,
isReady: vi.fn().mockReturnValue(false),
getPath: vi.fn().mockReturnValue(path.join(process.cwd(), 'logs')),
on: vi.fn()
}
}))
// Load environment variables from project root
dotenv.config({ path: path.resolve(process.cwd(), '.env') })