From 44ba4738d1d2fdcebdc936fa74378f84e464ce3b Mon Sep 17 00:00:00 2001 From: shmck Date: Tue, 23 Jun 2020 21:18:37 -0700 Subject: [PATCH 1/2] fix parse tests Signed-off-by: shmck --- tests/parse.test.ts | 100 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 82 insertions(+), 18 deletions(-) diff --git a/tests/parse.test.ts b/tests/parse.test.ts index 77369c4..aa2c7a1 100644 --- a/tests/parse.test.ts +++ b/tests/parse.test.ts @@ -299,7 +299,7 @@ The first step text: md, skeleton, commits: { - "1.1Q": ["abcdefg1"], + "1.1:T": ["abcdefg1"], }, }); const expected = { @@ -355,7 +355,7 @@ The first step text: md, skeleton, commits: { - "1.1Q": ["abcdefg1", "123456789"], + "1.1:T": ["abcdefg1", "123456789"], }, }); const expected = { @@ -465,7 +465,7 @@ Another line skeleton, commits: { "1": ["abcdefg1"], - "1.1Q": ["12345678"], + "1.1:T": ["12345678"], }, }); const expected = { @@ -519,8 +519,8 @@ The first step text: md, skeleton, commits: { - "1.1Q": ["abcdefg1", "123456789"], - "1.1A": ["1gfedcba", "987654321"], + "1.1:T": ["abcdefg1", "123456789"], + "1.1:S": ["1gfedcba", "987654321"], }, }); const expected = { @@ -644,12 +644,12 @@ The third step text: md, skeleton, commits: { - "1.1Q": ["abcdef1", "123456789"], - "1.1A": ["1fedcba", "987654321"], - "1.2Q": ["2abcdef"], - "1.2A": ["3abcdef"], - "2.1Q": ["4abcdef"], - "2.1A": ["5abcdef"], + "1.1:T": ["abcdef1", "123456789"], + "1.1:S": ["1fedcba", "987654321"], + "1.2:T": ["2abcdef"], + "1.2:S": ["3abcdef"], + "2.1:T": ["4abcdef"], + "2.1:S": ["5abcdef"], }, }); const expected = { @@ -759,7 +759,7 @@ The first step text: md, skeleton, commits: { - "1.1Q": ["abcdef1", "123456789"], + "1.1:T": ["abcdef1", "123456789"], }, }); const expected = { @@ -936,7 +936,7 @@ Description. }); describe("hints", () => { - it("should parse hints for a step", () => { + it("should parse hints for a step with '*", () => { const md = `# Title Description. @@ -971,7 +971,71 @@ The first step text: md, skeleton, commits: { - "1.1Q": ["abcdef1", "123456789"], + "1.1:T": ["abcdef1", "123456789"], + }, + }); + const expected = { + summary: { + description: "Description.", + }, + levels: [ + { + id: "1", + title: "Title 1", + summary: "First level content.", + content: "First level content.", + steps: [ + { + id: "1.1", + content: "The first step", + setup: { + commits: ["abcdef1", "123456789"], + }, + hints: ["First Hint", "Second Hint"], + }, + ], + }, + ], + }; + expect(result.levels).toEqual(expected.levels); + }); + + xit("should parse hints for a step with '-'", () => { + const md = `# Title + +Description. + +## 1. Title 1 + +First level content. + +### 1.1 + +The first step + +#### HINTS + +- First Hint +- Second Hint + +`; + const skeleton = { + levels: [ + { + id: "1", + steps: [ + { + id: "1.1", + }, + ], + }, + ], + }; + const result = parse({ + text: md, + skeleton, + commits: { + "1.1:T": ["abcdef1", "123456789"], }, }); const expected = { @@ -1040,7 +1104,7 @@ And spans multiple lines. text: md, skeleton, commits: { - "1.1Q": ["abcdef1", "123456789"], + "1.1:T": ["abcdef1", "123456789"], }, }); const expected = { @@ -1119,9 +1183,9 @@ The second uninterrupted step text: md, skeleton, commits: { - "1.1Q": ["abcdef1"], - "1.1A": ["123456789"], - "1.2Q": ["fedcba1"], + "1.1:T": ["abcdef1"], + "1.1:S": ["123456789"], + "1.2:T": ["fedcba1"], }, }); const expected = { From 25717110b0894fd39edbd18c55dfd5856ef2d169 Mon Sep 17 00:00:00 2001 From: shmck Date: Tue, 23 Jun 2020 21:19:10 -0700 Subject: [PATCH 2/2] parse hints with '-' Signed-off-by: shmck --- src/utils/parse.ts | 2 +- tests/parse.test.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/utils/parse.ts b/src/utils/parse.ts index 443fbf5..0b6ec1f 100644 --- a/src/utils/parse.ts +++ b/src/utils/parse.ts @@ -86,7 +86,7 @@ export function parseMdContent(md: string): TutorialFrame | never { const hintDetectRegex = /^(#{4}\sHINTS[\n\r]+([\*|\-]\s(?[^]*))[\n\r]+)+/; const hintMatch = section.match(hintDetectRegex); if (!!hintMatch) { - const hintItemRegex = /[\n\r]+\*\s/; + const hintItemRegex = /[\n\r]+[\*|\-]\s/; const hints = section .split(hintItemRegex) .slice(1) // remove #### HINTS diff --git a/tests/parse.test.ts b/tests/parse.test.ts index aa2c7a1..a24bfc7 100644 --- a/tests/parse.test.ts +++ b/tests/parse.test.ts @@ -1000,7 +1000,7 @@ The first step expect(result.levels).toEqual(expected.levels); }); - xit("should parse hints for a step with '-'", () => { + it("should parse hints for a step with '-'", () => { const md = `# Title Description.