From e19717d302bd931428d1ff99963386b625230f34 Mon Sep 17 00:00:00 2001
From: marihachi <marihachi0620@gmail.com>
Date: Wed, 17 Mar 2021 15:24:40 +0900
Subject: [PATCH] add test

---
 test/block.ts  | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++
 test/inline.ts | 37 ++++++++++++++++++++++++++
 test/node.ts   |  6 +++++
 3 files changed, 114 insertions(+)
 create mode 100644 test/block.ts
 create mode 100644 test/inline.ts
 create mode 100644 test/node.ts

diff --git a/test/block.ts b/test/block.ts
new file mode 100644
index 0000000..72e8319
--- /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 0000000..3351a4a
--- /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 0000000..2b66e34
--- /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 });
-- 
GitLab