73 lines
1.7 KiB
JavaScript
73 lines
1.7 KiB
JavaScript
import MockAdapter from 'axios-mock-adapter';
|
||
import { initEmojiMap, EMOJI_VERSION } from '~/emoji';
|
||
import axios from '~/lib/utils/axios_utils';
|
||
|
||
export const emojiFixtureMap = {
|
||
atom: {
|
||
moji: '⚛',
|
||
description: 'atom symbol',
|
||
unicodeVersion: '4.1',
|
||
aliases: ['atom_symbol'],
|
||
},
|
||
bomb: {
|
||
moji: '💣',
|
||
unicodeVersion: '6.0',
|
||
description: 'bomb',
|
||
},
|
||
construction_worker_tone5: {
|
||
moji: '👷🏿',
|
||
unicodeVersion: '8.0',
|
||
description: 'construction worker tone 5',
|
||
},
|
||
five: {
|
||
moji: '5️⃣',
|
||
unicodeVersion: '3.0',
|
||
description: 'keycap digit five',
|
||
},
|
||
grey_question: {
|
||
moji: '❔',
|
||
unicodeVersion: '6.0',
|
||
description: 'white question mark ornament',
|
||
},
|
||
black_heart: {
|
||
moji: '🖤',
|
||
unicodeVersion: '1.1',
|
||
description: 'black heart',
|
||
},
|
||
heart: {
|
||
moji: '❤',
|
||
unicodeVersion: '1.1',
|
||
description: 'heavy black heart',
|
||
},
|
||
custard: {
|
||
moji: '🍮',
|
||
unicodeVersion: '6.0',
|
||
description: 'custard',
|
||
},
|
||
star: {
|
||
moji: '⭐',
|
||
unicodeVersion: '5.1',
|
||
description: 'white medium star',
|
||
},
|
||
xss: {
|
||
moji: '<img src=x onerror=prompt(1)>',
|
||
unicodeVersion: '5.1',
|
||
description: 'xss',
|
||
},
|
||
};
|
||
|
||
export const mockEmojiData = Object.keys(emojiFixtureMap).reduce((acc, k) => {
|
||
const { moji: e, unicodeVersion: u, category: c, description: d } = emojiFixtureMap[k];
|
||
acc[k] = { name: k, e, u, c, d };
|
||
|
||
return acc;
|
||
}, {});
|
||
|
||
export async function initEmojiMock(mockData = mockEmojiData) {
|
||
const mock = new MockAdapter(axios);
|
||
mock.onGet(`/-/emojis/${EMOJI_VERSION}/emojis.json`).reply(200, JSON.stringify(mockData));
|
||
|
||
await initEmojiMap();
|
||
|
||
return mock;
|
||
}
|