44 lines
1.3 KiB
TypeScript
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);
|
|
});
|
|
});
|