diff --git a/test/block.ts b/test/block.ts new file mode 100644 index 0000000000000000000000000000000000000000..72e8319a4c7903c294fb6b7cfd79708a33e6efc4 --- /dev/null +++ b/test/block.ts @@ -0,0 +1,71 @@ +import assert from 'assert'; +import { parse, parsePlain } from '../built/index'; +import { createNode } from '../built/mfm-node'; +import { + TEXT, EMOJI +} from './node'; + +describe('search', () => { + describe('basic', () => { + it('Search', () => { + const input = 'MFM 書ãæ–¹ 123 Search'; + const output = [ + createNode('search', { + query: 'MFM 書ãæ–¹ 123', + content: input + }) + ]; + assert.deepStrictEqual(parse(input), output); + }); + it('[Search]', () => { + const input = 'MFM 書ãæ–¹ 123 [Search]'; + const output = [ + createNode('search', { + query: 'MFM 書ãæ–¹ 123', + content: input + }) + ]; + assert.deepStrictEqual(parse(input), output); + }); + it('search', () => { + const input = 'MFM 書ãæ–¹ 123 search'; + const output = [ + createNode('search', { + query: 'MFM 書ãæ–¹ 123', + content: input + }) + ]; + assert.deepStrictEqual(parse(input), output); + }); + it('[search]', () => { + const input = 'MFM 書ãæ–¹ 123 [search]'; + const output = [ + createNode('search', { + query: 'MFM 書ãæ–¹ 123', + content: input + }) + ]; + assert.deepStrictEqual(parse(input), output); + }); + it('検索', () => { + const input = 'MFM 書ãæ–¹ 123 検索'; + const output = [ + createNode('search', { + query: 'MFM 書ãæ–¹ 123', + content: input + }) + ]; + assert.deepStrictEqual(parse(input), output); + }); + it('[検索]', () => { + const input = 'MFM 書ãæ–¹ 123 [検索]'; + const output = [ + createNode('search', { + query: 'MFM 書ãæ–¹ 123', + content: input + }) + ]; + assert.deepStrictEqual(parse(input), output); + }); + }); +}); diff --git a/test/inline.ts b/test/inline.ts new file mode 100644 index 0000000000000000000000000000000000000000..3351a4ab47e7aa8a23bc70f537fd7a4692273380 --- /dev/null +++ b/test/inline.ts @@ -0,0 +1,37 @@ +import assert from 'assert'; +import { parse, parsePlain } from '../built/index'; +import { createNode } from '../built/mfm-node'; +import { + TEXT, EMOJI, UNI_EMOJI, HASHTAG +} from './node'; + +describe('text', () => { + it('basic', () => { + const input = 'abc'; + const output = [TEXT('abc')]; + assert.deepStrictEqual(parse(input), output); + }); +}); +describe('custom emoji', () => { + it('basic', () => { + const input = ':abc:'; + const output = [EMOJI('abc')]; + assert.deepStrictEqual(parse(input), output); + }); +}); + +describe('unicode emoji', () => { + it('basic', () => { + const input = '今起ããŸðŸ˜‡'; + const output = [TEXT('今起ããŸ'), UNI_EMOJI('😇')]; + assert.deepStrictEqual(parse(input), output); + }); +}); + +describe('hashtag', () => { + it('and unicode emoji', () => { + const input = '#ï¸âƒ£abc123#abc'; + const output = [UNI_EMOJI('#ï¸âƒ£'), TEXT('abc123'), HASHTAG('abc')]; + assert.deepStrictEqual(parse(input), output); + }); +}); diff --git a/test/node.ts b/test/node.ts new file mode 100644 index 0000000000000000000000000000000000000000..2b66e34143894efc762e81bfaeda3ae934d733c6 --- /dev/null +++ b/test/node.ts @@ -0,0 +1,6 @@ +import { createNode } from '../built/mfm-node'; + +export const TEXT = (value: string) => createNode('text', { text: value }); +export const EMOJI = (name: string) => createNode('emoji', { name: name }); +export const UNI_EMOJI = (value: string) => createNode('emoji', { emoji: value }); +export const HASHTAG = (value: string) => createNode('hashtag', { hashtag: value });