2020-10-13 05:08:27 -04:00
|
|
|
|
import MockAdapter from 'axios-mock-adapter';
|
|
|
|
|
import axios from '~/lib/utils/axios_utils';
|
|
|
|
|
import { initEmojiMap, EMOJI_VERSION } from '~/emoji';
|
|
|
|
|
|
|
|
|
|
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',
|
2020-10-14 11:08:42 -04:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// used for regression tests
|
|
|
|
|
// black_heart MUST come before heart
|
|
|
|
|
// custard MUST come before star
|
|
|
|
|
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',
|
2020-10-13 05:08:27 -04:00
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
|
2020-12-23 16:10:24 -05:00
|
|
|
|
Object.keys(emojiFixtureMap).forEach((k) => {
|
2020-10-14 11:08:42 -04:00
|
|
|
|
emojiFixtureMap[k].name = k;
|
|
|
|
|
if (!emojiFixtureMap[k].aliases) {
|
|
|
|
|
emojiFixtureMap[k].aliases = [];
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
2020-10-13 05:08:27 -04:00
|
|
|
|
export async function initEmojiMock() {
|
|
|
|
|
const emojiData = Object.fromEntries(
|
2020-12-23 16:10:24 -05:00
|
|
|
|
Object.values(emojiFixtureMap).map((m) => {
|
2020-10-13 05:08:27 -04:00
|
|
|
|
const { name: n, moji: e, unicodeVersion: u, category: c, description: d } = m;
|
|
|
|
|
return [n, { c, e, d, u }];
|
|
|
|
|
}),
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
const mock = new MockAdapter(axios);
|
|
|
|
|
mock.onGet(`/-/emojis/${EMOJI_VERSION}/emojis.json`).reply(200, JSON.stringify(emojiData));
|
|
|
|
|
|
|
|
|
|
await initEmojiMap();
|
|
|
|
|
|
|
|
|
|
return mock;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function describeEmojiFields(label, tests) {
|
|
|
|
|
describe.each`
|
|
|
|
|
field | accessor
|
2020-12-23 16:10:24 -05:00
|
|
|
|
${'name'} | ${(e) => e.name}
|
|
|
|
|
${'alias'} | ${(e) => e.aliases[0]}
|
|
|
|
|
${'description'} | ${(e) => e.description}
|
2020-10-13 05:08:27 -04:00
|
|
|
|
`(label, tests);
|
|
|
|
|
}
|