Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/__helpers__/emoji.js')
-rw-r--r--spec/frontend/__helpers__/emoji.js46
1 files changed, 38 insertions, 8 deletions
diff --git a/spec/frontend/__helpers__/emoji.js b/spec/frontend/__helpers__/emoji.js
index a64135601ae..014a7854024 100644
--- a/spec/frontend/__helpers__/emoji.js
+++ b/spec/frontend/__helpers__/emoji.js
@@ -1,8 +1,7 @@
-import MockAdapter from 'axios-mock-adapter';
import { initEmojiMap, EMOJI_VERSION } from '~/emoji';
-import axios from '~/lib/utils/axios_utils';
+import { CACHE_VERSION_KEY, CACHE_KEY } from '~/emoji/constants';
-export const emojiFixtureMap = {
+export const validEmoji = {
atom: {
moji: '⚛',
description: 'atom symbol',
@@ -49,11 +48,39 @@ export const emojiFixtureMap = {
unicodeVersion: '5.1',
description: 'white medium star',
},
+ gay_pride_flag: {
+ moji: '🏳️‍🌈',
+ unicodeVersion: '7.0',
+ description: 'because it contains a zero width joiner',
+ },
+ family_mmb: {
+ moji: '👨‍👨‍👦',
+ unicodeVersion: '6.0',
+ description: 'because it contains multiple zero width joiners',
+ },
+};
+
+export const invalidEmoji = {
xss: {
moji: '<img src=x onerror=prompt(1)>',
unicodeVersion: '5.1',
description: 'xss',
},
+ non_moji: {
+ moji: 'I am not an emoji...',
+ unicodeVersion: '9.0',
+ description: '...and should be filtered out',
+ },
+ multiple_moji: {
+ moji: '🍂🏭',
+ unicodeVersion: '9.0',
+ description: 'Multiple separate emoji that are not joined by a zero width joiner',
+ },
+};
+
+export const emojiFixtureMap = {
+ ...validEmoji,
+ ...invalidEmoji,
};
export const mockEmojiData = Object.keys(emojiFixtureMap).reduce((acc, k) => {
@@ -63,11 +90,14 @@ export const mockEmojiData = Object.keys(emojiFixtureMap).reduce((acc, k) => {
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));
+export function clearEmojiMock() {
+ localStorage.clear();
+ initEmojiMap.promise = null;
+}
+export async function initEmojiMock(mockData = mockEmojiData) {
+ clearEmojiMock();
+ localStorage.setItem(CACHE_VERSION_KEY, EMOJI_VERSION);
+ localStorage.setItem(CACHE_KEY, JSON.stringify(mockData));
await initEmojiMap();
-
- return mock;
}