mirror of
https://github.com/misskey-dev/misskey
synced 2025-06-29 16:22:50 +02:00
* wip ( 絵文字ミュートの基礎実装, PoC )
* refactor: 絵文字のmute/unmute処理の共通化
* SPDX
* リアクションからも絵文字ミュート可能に
* emojiMute/emojiUnmute
* replace resource of emojiMute
* add vitest preferstate for mutedEmojis
* add vitest to preferReactive
* 混入削除
* Fix typo (mutedEmojis -> mutingEmojis)
* reactiveやめる
* add時の判定ミスを修正
* Add CHANGELOG
* Revert "reactiveやめる"
This reverts commit 442742c371
.
* Update Changelog
70 lines
1.6 KiB
TypeScript
70 lines
1.6 KiB
TypeScript
/*
|
|
* SPDX-FileCopyrightText: syuilo and misskey-project
|
|
* SPDX-License-Identifier: AGPL-3.0-only
|
|
*/
|
|
|
|
import { vi } from 'vitest';
|
|
import createFetchMock from 'vitest-fetch-mock';
|
|
import type { Ref } from 'vue';
|
|
import { ref } from 'vue';
|
|
|
|
const fetchMocker = createFetchMock(vi);
|
|
fetchMocker.enableMocks();
|
|
|
|
// Set i18n
|
|
import locales from '../../../locales/index.js';
|
|
import { updateI18n } from '@/i18n.js';
|
|
updateI18n(locales['en-US']);
|
|
|
|
// XXX: misskey-js panics if WebSocket is not defined
|
|
vi.stubGlobal('WebSocket', class WebSocket extends EventTarget { static CLOSING = 2; });
|
|
|
|
export const preferState: Record<string, unknown> = {
|
|
|
|
// なんかtestがうまいこと動かないのでここに書く
|
|
dataSaver: {
|
|
media: false,
|
|
avatar: false,
|
|
urlPreview: false,
|
|
code: false,
|
|
},
|
|
|
|
mutingEmojis: [],
|
|
};
|
|
|
|
export let preferReactive: Record<string, Ref<unknown>> = {};
|
|
|
|
for (const key in preferState) {
|
|
if (preferState[key] !== undefined) {
|
|
preferReactive[key] = ref(preferState[key]);
|
|
}
|
|
}
|
|
|
|
// XXX: store somehow becomes undefined in vitest?
|
|
vi.mock('@/preferences.js', () => {
|
|
|
|
return {
|
|
prefer: {
|
|
s: preferState,
|
|
r: preferReactive,
|
|
},
|
|
};
|
|
});
|
|
|
|
// 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);
|