45 lines
1.1 KiB
TypeScript
45 lines
1.1 KiB
TypeScript
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
|
|
const requestMocks = vi.hoisted(() => ({
|
|
post: vi.fn(),
|
|
}));
|
|
|
|
vi.mock('@/utils/request', () => ({
|
|
request: {
|
|
post: requestMocks.post,
|
|
},
|
|
}));
|
|
|
|
import { completeSetup } from '../src/api/setup';
|
|
|
|
describe('setup API', () => {
|
|
beforeEach(() => {
|
|
requestMocks.post.mockReset();
|
|
requestMocks.post.mockResolvedValue({ completed: true });
|
|
});
|
|
|
|
it('allows enough time for the first database migration', async () => {
|
|
const request = {
|
|
setupCode: 'fixture-code',
|
|
databaseType: 'MYSQL' as const,
|
|
host: '127.0.0.1',
|
|
port: 3306,
|
|
database: 'kaidi_finance',
|
|
username: 'kaidi',
|
|
password: 'fixture-password',
|
|
adminUsername: 'admin',
|
|
adminDisplayName: '系统管理员',
|
|
adminPassword: 'SetupAdmin@2026Strong',
|
|
adminPasswordConfirmation: 'SetupAdmin@2026Strong',
|
|
};
|
|
|
|
await completeSetup(request);
|
|
|
|
expect(requestMocks.post).toHaveBeenCalledWith({
|
|
url: '/setup/complete',
|
|
data: request,
|
|
timeout: 120_000,
|
|
});
|
|
});
|
|
});
|