Skip to content
Snippets Groups Projects
Commit 72d85e79 authored by marihachi's avatar marihachi
Browse files

update parser test

parent b12feb09
No related branches found
No related tags found
No related merge requests found
...@@ -7,7 +7,7 @@ import { ...@@ -7,7 +7,7 @@ import {
describe('parser', () => { describe('parser', () => {
describe('text', () => { describe('text', () => {
it('basic', () => { it('普通のテキストを入力すると1つのテキストノードが返される', () => {
const input = 'abc'; const input = 'abc';
const output = [TEXT('abc')]; const output = [TEXT('abc')];
assert.deepStrictEqual(parse(input), output); assert.deepStrictEqual(parse(input), output);
...@@ -15,7 +15,7 @@ describe('parser', () => { ...@@ -15,7 +15,7 @@ describe('parser', () => {
}); });
describe('quote', () => { describe('quote', () => {
it('single', () => { it('1行の引用ブロックを使用できる', () => {
const input = '> abc'; const input = '> abc';
const output = [ const output = [
QUOTE([ QUOTE([
...@@ -24,7 +24,7 @@ describe('parser', () => { ...@@ -24,7 +24,7 @@ describe('parser', () => {
]; ];
assert.deepStrictEqual(parse(input), output); assert.deepStrictEqual(parse(input), output);
}); });
it('multiple', () => { it('複数行の引用ブロックを使用できる', () => {
const input = ` const input = `
> abc > abc
> 123 > 123
...@@ -36,8 +36,7 @@ describe('parser', () => { ...@@ -36,8 +36,7 @@ describe('parser', () => {
]; ];
assert.deepStrictEqual(parse(input), output); assert.deepStrictEqual(parse(input), output);
}); });
it('引用ブロックはブロックをネストできる', () => {
it('with block (center)', () => {
const input = ` const input = `
> <center> > <center>
> a > a
...@@ -52,8 +51,7 @@ describe('parser', () => { ...@@ -52,8 +51,7 @@ describe('parser', () => {
]; ];
assert.deepStrictEqual(parse(input), output); assert.deepStrictEqual(parse(input), output);
}); });
it('引用ブロックはインライン構文を含んだブロックをネストできる', () => {
it('with block (center, mention)', () => {
const input = ` const input = `
> <center> > <center>
> I'm @ai, An bot of misskey! > I'm @ai, An bot of misskey!
...@@ -73,7 +71,7 @@ describe('parser', () => { ...@@ -73,7 +71,7 @@ describe('parser', () => {
}); });
describe('search', () => { describe('search', () => {
describe('basic', () => { describe('検索構文を使用できる', () => {
it('Search', () => { it('Search', () => {
const input = 'MFM 書き方 123 Search'; const input = 'MFM 書き方 123 Search';
const output = [ const output = [
...@@ -135,7 +133,7 @@ describe('parser', () => { ...@@ -135,7 +133,7 @@ describe('parser', () => {
assert.deepStrictEqual(parse(input), output); assert.deepStrictEqual(parse(input), output);
}); });
}); });
it('with text', () => { it('ブロックの前後にあるテキストが正しく解釈される', () => {
const input = 'abc\nhoge piyo bebeyo 検索\n123'; const input = 'abc\nhoge piyo bebeyo 検索\n123';
const output = [ const output = [
TEXT('abc'), TEXT('abc'),
...@@ -147,22 +145,22 @@ describe('parser', () => { ...@@ -147,22 +145,22 @@ describe('parser', () => {
}); });
describe('code block', () => { describe('code block', () => {
it('basic', () => { it('コードブロックを使用できる', () => {
const input = '```\nabc\n```'; const input = '```\nabc\n```';
const output = [CODE_BLOCK('abc', null)]; const output = [CODE_BLOCK('abc', null)];
assert.deepStrictEqual(parse(input), output); assert.deepStrictEqual(parse(input), output);
}); });
it('multi line', () => { it('コードブロックには複数行のコードを入力できる', () => {
const input = '```\na\nb\nc\n```'; const input = '```\na\nb\nc\n```';
const output = [CODE_BLOCK('a\nb\nc', null)]; const output = [CODE_BLOCK('a\nb\nc', null)];
assert.deepStrictEqual(parse(input), output); assert.deepStrictEqual(parse(input), output);
}); });
it('basic (lang)', () => { it('コードブロックは言語を指定できる', () => {
const input = '```js\nconst a = 1;\n```'; const input = '```js\nconst a = 1;\n```';
const output = [CODE_BLOCK('const a = 1;', 'js')]; const output = [CODE_BLOCK('const a = 1;', 'js')];
assert.deepStrictEqual(parse(input), output); assert.deepStrictEqual(parse(input), output);
}); });
it('with text', () => { it('ブロックの前後にあるテキストが正しく解釈される', () => {
const input = 'abc\n```\nconst abc = 1;\n```\n123'; const input = 'abc\n```\nconst abc = 1;\n```\n123';
const output = [ const output = [
TEXT('abc'), TEXT('abc'),
...@@ -174,20 +172,33 @@ describe('parser', () => { ...@@ -174,20 +172,33 @@ describe('parser', () => {
}); });
describe('mathBlock', () => { describe('mathBlock', () => {
it('basic', () => { it('1行の数式ブロックを使用できる', () => {
const input = '123\n\\[math1\\]\nabc\n\\[math2\\]'; const input = '\\[math1\\]';
const output = [
MATH_BLOCK('math1')
];
assert.deepStrictEqual(parse(input), output);
});
it('ブロックの前後にあるテキストが正しく解釈される', () => {
const input = 'abc\n\\[math1\\]\n123';
const output = [ const output = [
TEXT('123'),
MATH_BLOCK('math1'),
TEXT('abc'), TEXT('abc'),
MATH_BLOCK('math2') MATH_BLOCK('math1'),
TEXT('123')
];
assert.deepStrictEqual(parse(input), output);
});
it('行末以外に閉じタグがある場合はマッチしない', () => {
const input = '\\[aaa\\]after';
const output = [
TEXT('\\[aaa\\]after')
]; ];
assert.deepStrictEqual(parse(input), output); assert.deepStrictEqual(parse(input), output);
}); });
it('case of no matched', () => { it('行頭以外に開始タグがある場合はマッチしない', () => {
const input = '\\[aaa\\]\\[bbb\\]'; const input = 'before\\[aaa\\]';
const output = [ const output = [
TEXT('\\[aaa\\]\\[bbb\\]') TEXT('before\\[aaa\\]')
]; ];
assert.deepStrictEqual(parse(input), output); assert.deepStrictEqual(parse(input), output);
}); });
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment