mirror of
https://github.com/orangecoding/fredy.git
synced 2026-06-16 12:31:07 +00:00
49 lines
1.6 KiB
JavaScript
49 lines
1.6 KiB
JavaScript
/*
|
|
* Copyright (c) 2026 by Christian Kellner.
|
|
* Licensed under Apache-2.0 with Commons Clause and Attribution/Naming Clause
|
|
*/
|
|
|
|
import { vi } from 'vitest';
|
|
import { readFile } from 'fs/promises';
|
|
import * as mockStore from './mocks/mockStore.js';
|
|
import { send } from './mocks/mockNotification.js';
|
|
|
|
export const providerConfig = JSON.parse(
|
|
await readFile(new URL('./provider/testProvider.json', import.meta.url), 'utf-8'),
|
|
);
|
|
|
|
vi.mock('../lib/services/storage/listingsStorage.js', () => mockStore);
|
|
vi.mock('../lib/services/storage/settingsStorage.js', () => mockStore);
|
|
vi.mock('../lib/services/geocoding/geoCodingService.js', () => ({
|
|
geocodeAddress: mockStore.getGeocoordinatesByAddress,
|
|
}));
|
|
vi.mock('../lib/services/storage/jobStorage.js', () => ({
|
|
getJob: (jobKey) => ({ id: jobKey, userId: 'user1' }),
|
|
}));
|
|
vi.mock('../lib/notification/notify.js', () => ({ send }));
|
|
|
|
vi.mock('../lib/services/extractor/puppeteerExtractor.js', async (importOriginal) => {
|
|
if (process.env.TEST_MODE !== 'offline') {
|
|
return importOriginal();
|
|
}
|
|
const { readFixture } = await import('./offlineFixtures.js');
|
|
return {
|
|
default: (url) => readFixture(url),
|
|
launchBrowser: async () => ({ close: async () => {}, __fredy_removeUserDataDir: false }),
|
|
closeBrowser: async () => {},
|
|
};
|
|
});
|
|
|
|
if (process.env.TEST_MODE === 'offline') {
|
|
const { buildFetchMock } = await import('./offlineFixtures.js');
|
|
vi.stubGlobal('fetch', buildFetchMock());
|
|
}
|
|
|
|
/**
|
|
* @returns {Promise<typeof import('../lib/FredyPipelineExecutioner.js').default>}
|
|
*/
|
|
export const mockFredy = async () => {
|
|
const mod = await import('../lib/FredyPipelineExecutioner.js');
|
|
return mod.default;
|
|
};
|