Files
2026-07-13 13:20:22 +08:00

44 lines
1.3 KiB
TypeScript

/**
* @license
* Copyright 2025 AionUi (aionui.com)
* SPDX-License-Identifier: Apache-2.0
*/
import { beforeEach, describe, expect, it, vi } from 'vitest';
const { configInitializeMock, consoleErrorMock } = vi.hoisted(() => ({
configInitializeMock: vi.fn(),
consoleErrorMock: vi.fn(),
}));
vi.mock('@/common/config/configService', () => ({
configService: {
initialize: configInitializeMock,
},
}));
describe('bootstrapRendererConfig', () => {
beforeEach(() => {
vi.clearAllMocks();
});
it('waits for configService initialization to finish', async () => {
configInitializeMock.mockResolvedValue(undefined);
const { bootstrapRendererConfig } = await import('@/renderer/services/bootstrapRenderer');
await bootstrapRendererConfig(consoleErrorMock);
expect(configInitializeMock).toHaveBeenCalledTimes(1);
expect(consoleErrorMock).not.toHaveBeenCalled();
});
it('swallows initialization failures so app bootstrap can continue', async () => {
const error = new Error('boom');
configInitializeMock.mockRejectedValue(error);
const { bootstrapRendererConfig } = await import('@/renderer/services/bootstrapRenderer');
await expect(bootstrapRendererConfig(consoleErrorMock)).resolves.toBeUndefined();
expect(consoleErrorMock).toHaveBeenCalledWith('Failed to initialize config:', error);
});
});