2023-07-26 22:31:52 -07:00
|
|
|
/*
|
|
|
|
* SPDX-FileCopyrightText: syuilo and other misskey contributors
|
|
|
|
* SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
*/
|
|
|
|
|
2023-03-08 19:48:39 -08:00
|
|
|
import { vi } from 'vitest';
|
2023-03-19 00:59:31 -07:00
|
|
|
import createFetchMock from 'vitest-fetch-mock';
|
|
|
|
|
|
|
|
const fetchMocker = createFetchMock(vi);
|
|
|
|
fetchMocker.enableMocks();
|
2023-03-08 19:48:39 -08:00
|
|
|
|
|
|
|
// Set i18n
|
2023-12-23 23:16:58 -08:00
|
|
|
import locales from '../../../locales/index.js';
|
2023-09-19 00:37:43 -07:00
|
|
|
import { updateI18n } from '@/i18n.js';
|
2023-03-08 19:48:39 -08:00
|
|
|
updateI18n(locales['en-US']);
|
|
|
|
|
|
|
|
// XXX: misskey-js panics if WebSocket is not defined
|
|
|
|
vi.stubGlobal('WebSocket', class WebSocket extends EventTarget { static CLOSING = 2; });
|
|
|
|
|
2024-01-06 23:02:53 -08:00
|
|
|
export const defaultStoreState: Record<string, unknown> = {
|
|
|
|
|
|
|
|
// なんかtestがうまいこと動かないのでここに書く
|
|
|
|
dataSaver: {
|
|
|
|
media: false,
|
|
|
|
avatar: false,
|
|
|
|
urlPreview: false,
|
|
|
|
code: false,
|
|
|
|
},
|
|
|
|
|
|
|
|
};
|
|
|
|
|
2023-03-08 19:48:39 -08:00
|
|
|
// XXX: defaultStore somehow becomes undefined in vitest?
|
|
|
|
vi.mock('@/store.js', () => {
|
|
|
|
return {
|
|
|
|
defaultStore: {
|
2024-01-06 23:02:53 -08:00
|
|
|
state: defaultStoreState,
|
2023-03-08 19:48:39 -08:00
|
|
|
},
|
|
|
|
};
|
|
|
|
});
|
2023-11-25 16:54:24 -08:00
|
|
|
|
|
|
|
// Add mocks for Web Audio API
|
|
|
|
const AudioNodeMock = vi.fn(() => ({
|
|
|
|
connect: vi.fn(() => ({ connect: vi.fn() })),
|
|
|
|
start: vi.fn(),
|
|
|
|
}));
|
|
|
|
|
|
|
|
const GainNodeMock = vi.fn(() => ({
|
|
|
|
gain: vi.fn(),
|
|
|
|
}));
|
|
|
|
|
|
|
|
const AudioContextMock = vi.fn(() => ({
|
|
|
|
createBufferSource: vi.fn(() => new AudioNodeMock()),
|
|
|
|
createGain: vi.fn(() => new GainNodeMock()),
|
|
|
|
decodeAudioData: vi.fn(),
|
|
|
|
}));
|
|
|
|
|
|
|
|
vi.stubGlobal('AudioContext', AudioContextMock);
|