Browse Source

Fix failing tests

master
Joe Attardi 4 years ago
parent
commit
26c6e4e45e
  1. 4
      src/emoji.test.ts
  2. 2
      src/emojiContainer.test.ts
  3. 2
      src/preview.test.ts
  4. 4
      src/preview.ts
  5. 5
      src/recent.ts
  6. 6
      src/search.test.ts
  7. 23
      src/util.test.ts
  8. 6
      src/util.ts
  9. 22
      src/variantPopup.test.ts
  10. 2
      src/variantPopup.ts

4
src/emoji.test.ts

@ -6,7 +6,7 @@ import { Emoji } from './emoji';
describe('Emoji', () => {
let events;
const testEmoji = { e: '😄', n: 'smile' };
const testEmoji = { emoji: '😄', name: 'smile', category: 0, version: '11.0' };
const options = { showRecents: true };
beforeEach(() => (events = new Emitter()));
@ -15,7 +15,7 @@ describe('Emoji', () => {
const emoji = new Emoji(testEmoji, false, false, events, options);
const element = emoji.render();
expect(element.innerHTML).toEqual(testEmoji.e);
expect(element.innerHTML).toEqual(testEmoji.emoji);
});
test('should emit the EMOJI event when clicked', done => {

2
src/emojiContainer.test.ts

@ -4,7 +4,7 @@ import { EmojiContainer } from './emojiContainer';
describe('EmojiContainer', () => {
test('should render all the given emojis', () => {
const emojis = [{ e: '⚡️', ver: '12.1' }, { e: '👍', ver: '12.1' }];
const emojis = [{ emoji: '⚡️', version: '12.1' }, { emoji: '👍', version: '12.1' }];
const events = new Emitter();

2
src/preview.test.ts

@ -8,7 +8,7 @@ describe('EmojiPreview', () => {
const events = new Emitter();
const preview = new EmojiPreview(events).render();
events.emit(SHOW_PREVIEW, { e: '⚡️', n: 'zap' });
events.emit(SHOW_PREVIEW, { emoji: '⚡️', name: 'zap' });
const previewEmoji = preview.querySelector(
'.emoji-picker__preview-emoji'

4
src/preview.ts

@ -1,7 +1,7 @@
import { TinyEmitter as Emitter } from 'tiny-emitter';
import { SHOW_PREVIEW, HIDE_PREVIEW } from './events';
import { createElement, getEmojiName, formatEmojiName } from './util';
import { createElement, formatEmojiName } from './util';
import { EmojiRecord } from './types';
const CLASS_PREVIEW = 'emoji-picker__preview';
@ -33,7 +33,7 @@ export class EmojiPreview {
showPreview(emoji: EmojiRecord): void {
this.emoji.innerHTML = emoji.emoji;
this.name.innerHTML = formatEmojiName(getEmojiName(emoji));
this.name.innerHTML = formatEmojiName(emoji.name);
}
hidePreview(): void {

5
src/recent.ts

@ -1,4 +1,3 @@
import { getEmojiName } from './util';
import { EmojiRecord, EmojiButtonOptions, RecentEmoji } from './types';
const LOCAL_STORAGE_KEY = 'emojiPicker.recent';
@ -16,8 +15,8 @@ export function save(
const recent = {
emoji: emoji.emoji,
name: getEmojiName(emoji),
key: (emoji as RecentEmoji).key || getEmojiName(emoji)
name: emoji.name,
key: (emoji as RecentEmoji).key || emoji.name
};
localStorage.setItem(

6
src/search.test.ts

@ -8,8 +8,8 @@ import { EmojiButtonOptions, EmojiRecord } from './types';
describe('Search', () => {
const emojis: EmojiRecord[] = [
{ c: 0, e: '⚡️', n: ['zap'], ver: '12.1' },
{ c: 0, e: '😀', n: ['grinning'], ver: '12.1' }
{ category: 0, emoji: '⚡️', name: 'zap', version: '12.1' },
{ category: 0, emoji: '😀', name: 'grinning', version: '12.1' }
];
const options: EmojiButtonOptions = { emojiVersion: '12.1' };
@ -49,7 +49,7 @@ describe('Search', () => {
'.emoji-picker__emoji'
);
expect(searchResults.length).toBe(1);
expect(searchResults[0].innerHTML).toEqual(emojis[0].e);
expect(searchResults[0].innerHTML).toEqual(emojis[0].emoji);
done();
});

23
src/util.test.ts

@ -1,29 +1,6 @@
import * as util from './util';
describe('Utils', () => {
describe('getEmojiName', () => {
test('should use a string name', () => {
expect(
util.getEmojiName({
n: 'foobar',
e: '😎',
k: 'foobar'
})
).toEqual('foobar');
});
test('should use the first element of an array of names', () => {
expect(
util.getEmojiName({
n: ['one', 'two'],
e: '😎',
c: 0,
ver: '0.0'
})
).toEqual('one');
});
});
describe('formatEmojiName', () => {
test('should format a dash-separated name', () => {
expect(util.formatEmojiName('foo-bar-baz')).toEqual('Foo bar baz');

6
src/util.ts

@ -1,5 +1,3 @@
import { EmojiRecord, RecentEmoji } from './types';
export function createElement(
tagName: string,
className?: string
@ -19,10 +17,6 @@ export function empty(element: HTMLElement): void {
}
}
export function getEmojiName(emoji: EmojiRecord | RecentEmoji): string {
return emoji.name;
}
export function formatEmojiName(name: string): string {
const words = name.split(/[-_]/);
words[0] = words[0][0].toUpperCase() + words[0].slice(1);

22
src/variantPopup.test.ts

@ -5,15 +5,11 @@ import { VariantPopup } from './variantPopup';
describe('VariantPopup', () => {
const emoji = {
e: '👍',
v: {
one: {
e: '👍🏻'
},
two: {
e: '👍🏿'
}
}
name: 'thumbs up',
category: 0,
emoji: '👍',
variations: ['👍🏻', '👍🏿'],
version: '11.0'
};
let events;
@ -21,15 +17,15 @@ describe('VariantPopup', () => {
beforeEach(() => {
events = new Emitter();
container = new VariantPopup(events, emoji).render();
container = new VariantPopup(events, emoji, {}).render();
});
test('should render the emoji variants', () => {
const emojiButtons = container.querySelectorAll('.emoji-picker__emoji');
expect(emojiButtons[0].innerHTML).toEqual(emoji.e);
expect(emojiButtons[1].innerHTML).toEqual(emoji.v.one.e);
expect(emojiButtons[2].innerHTML).toEqual(emoji.v.two.e);
expect(emojiButtons[0].innerHTML).toEqual(emoji.emoji);
expect(emojiButtons[1].innerHTML).toEqual(emoji.variations[0]);
expect(emojiButtons[2].innerHTML).toEqual(emoji.variations[1]);
});
test('should emit the HIDE_VARIANT_POPUP event when the close button is clicked', done => {

2
src/variantPopup.ts

@ -56,7 +56,7 @@ export class VariantPopup {
new Emoji(this.emoji, false, false, this.events, this.options).render()
);
this.emoji.variations?.forEach((variation, index) => this.popup.appendChild(new Emoji({
(this.emoji.variations || []).forEach((variation, index) => this.popup.appendChild(new Emoji({
name: this.emoji.name,
emoji: variation,
key: this.emoji.name + index

Loading…
Cancel
Save