This commit is contained in:
syuilo 2024-03-01 17:27:03 +09:00
parent ca6399437c
commit 6158ef138e

View file

@ -7,28 +7,28 @@ import { assert, describe, test } from 'vitest';
import { searchEmoji } from '@/scripts/search-emoji.js'; import { searchEmoji } from '@/scripts/search-emoji.js';
describe('emoji autocomplete', () => { describe('emoji autocomplete', () => {
test('名前の完全一致は名前の前方一致より優先される', async () => { test('名前の完全一致は名前の前方一致より優先される', async () => {
const result = searchEmoji('foooo', [{ emoji: ':foooo:', name: 'foooo' }, { emoji: ':foooobaaar:', name: 'foooobaaar' }]); const result = searchEmoji('foooo', [{ emoji: ':foooo:', name: 'foooo' }, { emoji: ':foooobaaar:', name: 'foooobaaar' }]);
assert.equal(result[0].emoji, ':foooo:'); assert.equal(result[0].emoji, ':foooo:');
}); });
test('名前の前方一致は名前の部分一致より優先される', async () => { test('名前の前方一致は名前の部分一致より優先される', async () => {
const result = searchEmoji('baaa', [{ emoji: ':baaar:', name: 'baaar' }, { emoji: ':foooobaaar:', name: 'foooobaaar' }]); const result = searchEmoji('baaa', [{ emoji: ':baaar:', name: 'baaar' }, { emoji: ':foooobaaar:', name: 'foooobaaar' }]);
assert.equal(result[0].emoji, ':baaar:'); assert.equal(result[0].emoji, ':baaar:');
}); });
test('名前の完全一致はタグの完全一致より優先される', async () => { test('名前の完全一致はタグの完全一致より優先される', async () => {
const result = searchEmoji('foooo', [{ emoji: ':foooo:', name: 'foooo' }, { emoji: ':baaar:', name: 'foooo', aliasOf: 'baaar' }]); const result = searchEmoji('foooo', [{ emoji: ':foooo:', name: 'foooo' }, { emoji: ':baaar:', name: 'foooo', aliasOf: 'baaar' }]);
assert.equal(result[0].emoji, ':foooo:'); assert.equal(result[0].emoji, ':foooo:');
}); });
test('名前の前方一致はタグの前方一致より優先される', async () => { test('名前の前方一致はタグの前方一致より優先される', async () => {
const result = searchEmoji('foo', [{ emoji: ':foooo:', name: 'foooo' }, { emoji: ':baaar:', name: 'foooo', aliasOf: 'baaar' }]); const result = searchEmoji('foo', [{ emoji: ':foooo:', name: 'foooo' }, { emoji: ':baaar:', name: 'foooo', aliasOf: 'baaar' }]);
assert.equal(result[0].emoji, ':foooo:'); assert.equal(result[0].emoji, ':foooo:');
}); });
test('名前の部分一致はタグの部分一致より優先される', async () => { test('名前の部分一致はタグの部分一致より優先される', async () => {
const result = searchEmoji('oooo', [{ emoji: ':foooo:', name: 'foooo' }, { emoji: ':baaar:', name: 'foooo', aliasOf: 'baaar' }]); const result = searchEmoji('oooo', [{ emoji: ':foooo:', name: 'foooo' }, { emoji: ':baaar:', name: 'foooo', aliasOf: 'baaar' }]);
assert.equal(result[0].emoji, ':foooo:'); assert.equal(result[0].emoji, ':foooo:');
}); });
}); });