test: add tests for translated challenge parser
This commit is contained in:
committed by
Mrugesh Mohapatra
parent
f9ffcf0c61
commit
fa931134a4
63
curriculum/__fixtures__/challenge-html-comments.english.md
Normal file
63
curriculum/__fixtures__/challenge-html-comments.english.md
Normal file
@@ -0,0 +1,63 @@
|
||||
---
|
||||
id: bd7123c8c441eddfaeb5bdef
|
||||
title: Say Hello to HTML Elements
|
||||
challengeType: 0
|
||||
videoUrl: 'https://scrimba.com/p/pVMPUv/cE8Gpt2'
|
||||
forumTopicId: 18276
|
||||
---
|
||||
|
||||
## Description
|
||||
<section id='description'>
|
||||
|
||||
```js
|
||||
// change code below this line
|
||||
```
|
||||
|
||||
</section>
|
||||
|
||||
## Instructions
|
||||
<section id='instructions'>
|
||||
To pass the test on this challenge, change your <code>h1</code> element's text to say "Hello World".
|
||||
</section>
|
||||
|
||||
## Tests
|
||||
<section id='tests'>
|
||||
|
||||
```yml
|
||||
tests:
|
||||
- text: Your <code>h1</code> element should have the text "Hello World".
|
||||
testString: assert.isTrue((/hello(\s)+world/gi).test($('h1').text()));
|
||||
|
||||
```
|
||||
|
||||
</section>
|
||||
|
||||
## Challenge Seed
|
||||
<section id='challengeSeed'>
|
||||
|
||||
<div id='html-seed'>
|
||||
|
||||
```html
|
||||
<h1>Hello</h1>
|
||||
<!-- Add your code below this line -->
|
||||
<!-- Add your code above this line -->
|
||||
<style>
|
||||
/* change code below this line */
|
||||
/* change code above this line */
|
||||
</style>
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</section>
|
||||
|
||||
## Solution
|
||||
<section id='solution'>
|
||||
|
||||
```html
|
||||
<h1>Hello World</h1>
|
||||
```
|
||||
|
||||
</section>
|
58
curriculum/__fixtures__/challenge-js-comments.english.md
Normal file
58
curriculum/__fixtures__/challenge-js-comments.english.md
Normal file
@@ -0,0 +1,58 @@
|
||||
---
|
||||
id: bd7123c8c441eddfaeb5bdef
|
||||
title: Say Hello to HTML Elements
|
||||
challengeType: 0
|
||||
videoUrl: 'https://scrimba.com/p/pVMPUv/cE8Gpt2'
|
||||
forumTopicId: 18276
|
||||
---
|
||||
|
||||
## Description
|
||||
<section id='description'>
|
||||
|
||||
```js
|
||||
// change code below this line
|
||||
```
|
||||
|
||||
</section>
|
||||
|
||||
## Instructions
|
||||
<section id='instructions'>
|
||||
To pass the test on this challenge, change your <code>h1</code> element's text to say "Hello World".
|
||||
</section>
|
||||
|
||||
## Tests
|
||||
<section id='tests'>
|
||||
|
||||
```yml
|
||||
tests:
|
||||
- text: Your <code>h1</code> element should have the text "Hello World".
|
||||
testString: assert.isTrue((/hello(\s)+world/gi).test($('h1').text()));
|
||||
|
||||
```
|
||||
|
||||
</section>
|
||||
|
||||
## Challenge Seed
|
||||
<section id='challengeSeed'>
|
||||
|
||||
<div id='js-seed'>
|
||||
|
||||
```js
|
||||
/* Add your code below this line */
|
||||
// Add your code above this line */
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</section>
|
||||
|
||||
## Solution
|
||||
<section id='solution'>
|
||||
|
||||
```html
|
||||
<h1>Hello World</h1>
|
||||
```
|
||||
|
||||
</section>
|
58
curriculum/__fixtures__/challenge-jsx-comments.english.md
Normal file
58
curriculum/__fixtures__/challenge-jsx-comments.english.md
Normal file
@@ -0,0 +1,58 @@
|
||||
---
|
||||
id: bd7123c8c441eddfaeb5bdef
|
||||
title: Say Hello to HTML Elements
|
||||
challengeType: 0
|
||||
videoUrl: 'https://scrimba.com/p/pVMPUv/cE8Gpt2'
|
||||
forumTopicId: 18276
|
||||
---
|
||||
|
||||
## Description
|
||||
<section id='description'>
|
||||
|
||||
```js
|
||||
// change code below this line
|
||||
```
|
||||
|
||||
</section>
|
||||
|
||||
## Instructions
|
||||
<section id='instructions'>
|
||||
To pass the test on this challenge, change your <code>h1</code> element's text to say "Hello World".
|
||||
</section>
|
||||
|
||||
## Tests
|
||||
<section id='tests'>
|
||||
|
||||
```yml
|
||||
tests:
|
||||
- text: Your <code>h1</code> element should have the text "Hello World".
|
||||
testString: assert.isTrue((/hello(\s)+world/gi).test($('h1').text()));
|
||||
|
||||
```
|
||||
|
||||
</section>
|
||||
|
||||
## Challenge Seed
|
||||
<section id='challengeSeed'>
|
||||
|
||||
<div id='jsx-seed'>
|
||||
|
||||
```jsx
|
||||
{ /* Add your code below this line */ }
|
||||
{ /* Add your code above this line */ }
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</section>
|
||||
|
||||
## Solution
|
||||
<section id='solution'>
|
||||
|
||||
```html
|
||||
<h1>Hello World</h1>
|
||||
```
|
||||
|
||||
</section>
|
25
curriculum/__fixtures__/challenge-stripped.chinese.md
Normal file
25
curriculum/__fixtures__/challenge-stripped.chinese.md
Normal file
@@ -0,0 +1,25 @@
|
||||
---
|
||||
localeTitle: 向HTML Elements说你好
|
||||
forumTopicId: 18276
|
||||
---
|
||||
|
||||
## Description
|
||||
<section id="description">
|
||||
欢迎来到freeCodeCamp的HTML编码挑战。这些将逐步引导您完成Web开发。首先,您将首先使用HTML构建一个简单的网页。您可以在<code>code editor</code>编辑<code>code</code> ,该<code>code editor</code>嵌入到此网页中。您是否在代码编辑器中看到<code><h1>Hello</h1></code> ?这是一个HTML <code>element</code> 。大多数HTML元素都有一个<code>opening tag</code>和一个<code>closing tag</code> 。打开标记如下所示: <code><h1></code>结束标记如下所示: <code></h1></code>开始标记和结束标记之间的唯一区别是结束标记的左括号后面的正斜杠。每个挑战都有可以随时单击“运行测试”按钮运行的测试。当您通过所有测试时,系统会提示您提交解决方案并转到下一个编码挑战。
|
||||
</section>
|
||||
|
||||
## Instructions
|
||||
<section id="instructions">
|
||||
要通过此挑战的测试,请将<code>h1</code>元素的文本更改为“Hello World”。
|
||||
</section>
|
||||
|
||||
## Tests
|
||||
<section id='tests'>
|
||||
|
||||
```yml
|
||||
tests:
|
||||
- text: 你的<code>h1</code>元素应该有“Hello World”文本。
|
||||
|
||||
```
|
||||
|
||||
</section>
|
54
curriculum/__fixtures__/challenge.chinese.md
Normal file
54
curriculum/__fixtures__/challenge.chinese.md
Normal file
@@ -0,0 +1,54 @@
|
||||
---
|
||||
id: bd7123c8c441eddfaeb5bdef
|
||||
title: Say Hello to HTML Elements
|
||||
challengeType: 0
|
||||
videoUrl: ''
|
||||
forumTopicId: 18276
|
||||
localeTitle: 向HTML Elements说你好
|
||||
---
|
||||
|
||||
## Description
|
||||
<section id="description">
|
||||
欢迎来到freeCodeCamp的HTML编码挑战。这些将逐步引导您完成Web开发。首先,您将首先使用HTML构建一个简单的网页。您可以在<code>code editor</code>编辑<code>code</code> ,该<code>code editor</code>嵌入到此网页中。您是否在代码编辑器中看到<code><h1>Hello</h1></code> ?这是一个HTML <code>element</code> 。大多数HTML元素都有一个<code>opening tag</code>和一个<code>closing tag</code> 。打开标记如下所示: <code><h1></code>结束标记如下所示: <code></h1></code>开始标记和结束标记之间的唯一区别是结束标记的左括号后面的正斜杠。每个挑战都有可以随时单击“运行测试”按钮运行的测试。当您通过所有测试时,系统会提示您提交解决方案并转到下一个编码挑战。
|
||||
</section>
|
||||
|
||||
## Instructions
|
||||
<section id="instructions">
|
||||
要通过此挑战的测试,请将<code>h1</code>元素的文本更改为“Hello World”。
|
||||
</section>
|
||||
|
||||
## Tests
|
||||
<section id='tests'>
|
||||
|
||||
```yml
|
||||
tests:
|
||||
- text: 你的<code>h1</code>元素应该有“Hello World”文本。
|
||||
testString: 'assert.isTrue((/hello(\s)+world/gi).test($("h1").text()), "Your <code>h1</code> element should have the text "Hello World".");'
|
||||
|
||||
```
|
||||
|
||||
</section>
|
||||
|
||||
## Challenge Seed
|
||||
<section id='challengeSeed'>
|
||||
|
||||
<div id='html-seed'>
|
||||
|
||||
```html
|
||||
<h1>Hello</h1>
|
||||
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</section>
|
||||
|
||||
## Solution
|
||||
<section id='solution'>
|
||||
|
||||
```js
|
||||
// solution required
|
||||
```
|
||||
</section>
|
62
curriculum/__fixtures__/challenge.english.md
Normal file
62
curriculum/__fixtures__/challenge.english.md
Normal file
@@ -0,0 +1,62 @@
|
||||
---
|
||||
id: bd7123c8c441eddfaeb5bdef
|
||||
title: Say Hello to HTML Elements
|
||||
challengeType: 0
|
||||
videoUrl: 'https://scrimba.com/p/pVMPUv/cE8Gpt2'
|
||||
forumTopicId: 12345
|
||||
---
|
||||
|
||||
## Description
|
||||
<section id='description'>
|
||||
Welcome to freeCodeCamp's HTML coding challenges. These will walk you through web development step-by-step.
|
||||
First, you'll start by building a simple web page using HTML. You can edit code in your code editor, which is embedded into this web page.
|
||||
Do you see the code in your code editor that says <code><h1>Hello</h1></code>? That's an HTML element.
|
||||
Most HTML elements have an opening tag and a closing tag.
|
||||
Opening tags look like this:
|
||||
<code><h1></code>
|
||||
Closing tags look like this:
|
||||
<code></h1></code>
|
||||
The only difference between opening and closing tags is the forward slash after the opening bracket of a closing tag.
|
||||
Each challenge has tests you can run at any time by clicking the "Run tests" button. When you pass all tests, you'll be prompted to submit your solution and go to the next coding challenge.
|
||||
</section>
|
||||
|
||||
## Instructions
|
||||
<section id='instructions'>
|
||||
To pass the test on this challenge, change your <code>h1</code> element's text to say "Hello World".
|
||||
</section>
|
||||
|
||||
## Tests
|
||||
<section id='tests'>
|
||||
|
||||
```yml
|
||||
tests:
|
||||
- text: Your <code>h1</code> element should have the text "Hello World".
|
||||
testString: assert.isTrue((/hello(\s)+world/gi).test($('h1').text()));
|
||||
|
||||
```
|
||||
|
||||
</section>
|
||||
|
||||
## Challenge Seed
|
||||
<section id='challengeSeed'>
|
||||
|
||||
<div id='html-seed'>
|
||||
|
||||
```html
|
||||
<h1>Hello</h1>
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</section>
|
||||
|
||||
## Solution
|
||||
<section id='solution'>
|
||||
|
||||
```html
|
||||
<h1>Hello World</h1>
|
||||
```
|
||||
|
||||
</section>
|
60
curriculum/__fixtures__/combined-html-comments.md
Normal file
60
curriculum/__fixtures__/combined-html-comments.md
Normal file
@@ -0,0 +1,60 @@
|
||||
---
|
||||
id: bd7123c8c441eddfaeb5bdef
|
||||
title: Say Hello to HTML Elements
|
||||
challengeType: 0
|
||||
videoUrl: 'https://scrimba.com/p/pVMPUv/cE8Gpt2'
|
||||
forumTopicId: 18276
|
||||
localeTitle: 向HTML Elements说你好
|
||||
---
|
||||
|
||||
## Description
|
||||
<section id="description">
|
||||
欢迎来到freeCodeCamp的HTML编码挑战。这些将逐步引导您完成Web开发。首先,您将首先使用HTML构建一个简单的网页。您可以在<code>code editor</code>编辑<code>code</code> ,该<code>code editor</code>嵌入到此网页中。您是否在代码编辑器中看到<code><h1>Hello</h1></code> ?这是一个HTML <code>element</code> 。大多数HTML元素都有一个<code>opening tag</code>和一个<code>closing tag</code> 。打开标记如下所示: <code><h1></code>结束标记如下所示: <code></h1></code>开始标记和结束标记之间的唯一区别是结束标记的左括号后面的正斜杠。每个挑战都有可以随时单击“运行测试”按钮运行的测试。当您通过所有测试时,系统会提示您提交解决方案并转到下一个编码挑战。
|
||||
</section>
|
||||
|
||||
## Instructions
|
||||
<section id="instructions">
|
||||
要通过此挑战的测试,请将<code>h1</code>元素的文本更改为“Hello World”。
|
||||
</section>
|
||||
|
||||
## Tests
|
||||
<section id='tests'>
|
||||
|
||||
```yml
|
||||
tests:
|
||||
- text: 你的<code>h1</code>元素应该有“Hello World”文本。
|
||||
testString: assert.isTrue((/hello(\s)+world/gi).test($('h1').text()));
|
||||
|
||||
```
|
||||
|
||||
</section>
|
||||
|
||||
## Challenge Seed
|
||||
<section id='challengeSeed'>
|
||||
|
||||
<div id='html-seed'>
|
||||
|
||||
```html
|
||||
<h1>Hello</h1>
|
||||
<!-- (Chinese) Add your code below this line (Chinese) -->
|
||||
<!-- (Chinese) Add your code above this line (Chinese) -->
|
||||
<style>
|
||||
/* (Chinese) change code below this line (Chinese) */
|
||||
/* (Chinese) change code above this line (Chinese) */
|
||||
</style>
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</section>
|
||||
|
||||
## Solution
|
||||
<section id='solution'>
|
||||
|
||||
```html
|
||||
<h1>Hello World</h1>
|
||||
```
|
||||
|
||||
</section>
|
55
curriculum/__fixtures__/combined-js-comments.md
Normal file
55
curriculum/__fixtures__/combined-js-comments.md
Normal file
@@ -0,0 +1,55 @@
|
||||
---
|
||||
id: bd7123c8c441eddfaeb5bdef
|
||||
title: Say Hello to HTML Elements
|
||||
challengeType: 0
|
||||
videoUrl: 'https://scrimba.com/p/pVMPUv/cE8Gpt2'
|
||||
forumTopicId: 18276
|
||||
localeTitle: 向HTML Elements说你好
|
||||
---
|
||||
|
||||
## Description
|
||||
<section id="description">
|
||||
欢迎来到freeCodeCamp的HTML编码挑战。这些将逐步引导您完成Web开发。首先,您将首先使用HTML构建一个简单的网页。您可以在<code>code editor</code>编辑<code>code</code> ,该<code>code editor</code>嵌入到此网页中。您是否在代码编辑器中看到<code><h1>Hello</h1></code> ?这是一个HTML <code>element</code> 。大多数HTML元素都有一个<code>opening tag</code>和一个<code>closing tag</code> 。打开标记如下所示: <code><h1></code>结束标记如下所示: <code></h1></code>开始标记和结束标记之间的唯一区别是结束标记的左括号后面的正斜杠。每个挑战都有可以随时单击“运行测试”按钮运行的测试。当您通过所有测试时,系统会提示您提交解决方案并转到下一个编码挑战。
|
||||
</section>
|
||||
|
||||
## Instructions
|
||||
<section id="instructions">
|
||||
要通过此挑战的测试,请将<code>h1</code>元素的文本更改为“Hello World”。
|
||||
</section>
|
||||
|
||||
## Tests
|
||||
<section id='tests'>
|
||||
|
||||
```yml
|
||||
tests:
|
||||
- text: 你的<code>h1</code>元素应该有“Hello World”文本。
|
||||
testString: assert.isTrue((/hello(\s)+world/gi).test($('h1').text()));
|
||||
|
||||
```
|
||||
|
||||
</section>
|
||||
|
||||
## Challenge Seed
|
||||
<section id='challengeSeed'>
|
||||
|
||||
<div id='js-seed'>
|
||||
|
||||
```js
|
||||
/* (Chinese) Add your code below this line (Chinese) */
|
||||
// Add your code above this line */
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</section>
|
||||
|
||||
## Solution
|
||||
<section id='solution'>
|
||||
|
||||
```html
|
||||
<h1>Hello World</h1>
|
||||
```
|
||||
|
||||
</section>
|
55
curriculum/__fixtures__/combined-jsx-comments.md
Normal file
55
curriculum/__fixtures__/combined-jsx-comments.md
Normal file
@@ -0,0 +1,55 @@
|
||||
---
|
||||
id: bd7123c8c441eddfaeb5bdef
|
||||
title: Say Hello to HTML Elements
|
||||
challengeType: 0
|
||||
videoUrl: 'https://scrimba.com/p/pVMPUv/cE8Gpt2'
|
||||
forumTopicId: 18276
|
||||
localeTitle: 向HTML Elements说你好
|
||||
---
|
||||
|
||||
## Description
|
||||
<section id="description">
|
||||
欢迎来到freeCodeCamp的HTML编码挑战。这些将逐步引导您完成Web开发。首先,您将首先使用HTML构建一个简单的网页。您可以在<code>code editor</code>编辑<code>code</code> ,该<code>code editor</code>嵌入到此网页中。您是否在代码编辑器中看到<code><h1>Hello</h1></code> ?这是一个HTML <code>element</code> 。大多数HTML元素都有一个<code>opening tag</code>和一个<code>closing tag</code> 。打开标记如下所示: <code><h1></code>结束标记如下所示: <code></h1></code>开始标记和结束标记之间的唯一区别是结束标记的左括号后面的正斜杠。每个挑战都有可以随时单击“运行测试”按钮运行的测试。当您通过所有测试时,系统会提示您提交解决方案并转到下一个编码挑战。
|
||||
</section>
|
||||
|
||||
## Instructions
|
||||
<section id="instructions">
|
||||
要通过此挑战的测试,请将<code>h1</code>元素的文本更改为“Hello World”。
|
||||
</section>
|
||||
|
||||
## Tests
|
||||
<section id='tests'>
|
||||
|
||||
```yml
|
||||
tests:
|
||||
- text: 你的<code>h1</code>元素应该有“Hello World”文本。
|
||||
testString: assert.isTrue((/hello(\s)+world/gi).test($('h1').text()));
|
||||
|
||||
```
|
||||
|
||||
</section>
|
||||
|
||||
## Challenge Seed
|
||||
<section id='challengeSeed'>
|
||||
|
||||
<div id='jsx-seed'>
|
||||
|
||||
```jsx
|
||||
{ /* (Chinese) Add your code below this line (Chinese) */ }
|
||||
{ /* (Chinese) Add your code above this line (Chinese) */ }
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</section>
|
||||
|
||||
## Solution
|
||||
<section id='solution'>
|
||||
|
||||
```html
|
||||
<h1>Hello World</h1>
|
||||
```
|
||||
|
||||
</section>
|
54
curriculum/__fixtures__/combined.md
Normal file
54
curriculum/__fixtures__/combined.md
Normal file
@@ -0,0 +1,54 @@
|
||||
---
|
||||
id: bd7123c8c441eddfaeb5bdef
|
||||
title: Say Hello to HTML Elements
|
||||
challengeType: 0
|
||||
videoUrl: 'https://scrimba.com/p/pVMPUv/cE8Gpt2'
|
||||
forumTopicId: 18276
|
||||
localeTitle: 向HTML Elements说你好
|
||||
---
|
||||
|
||||
## Description
|
||||
<section id="description">
|
||||
欢迎来到freeCodeCamp的HTML编码挑战。这些将逐步引导您完成Web开发。首先,您将首先使用HTML构建一个简单的网页。您可以在<code>code editor</code>编辑<code>code</code> ,该<code>code editor</code>嵌入到此网页中。您是否在代码编辑器中看到<code><h1>Hello</h1></code> ?这是一个HTML <code>element</code> 。大多数HTML元素都有一个<code>opening tag</code>和一个<code>closing tag</code> 。打开标记如下所示: <code><h1></code>结束标记如下所示: <code></h1></code>开始标记和结束标记之间的唯一区别是结束标记的左括号后面的正斜杠。每个挑战都有可以随时单击“运行测试”按钮运行的测试。当您通过所有测试时,系统会提示您提交解决方案并转到下一个编码挑战。
|
||||
</section>
|
||||
|
||||
## Instructions
|
||||
<section id="instructions">
|
||||
要通过此挑战的测试,请将<code>h1</code>元素的文本更改为“Hello World”。
|
||||
</section>
|
||||
|
||||
## Tests
|
||||
<section id='tests'>
|
||||
|
||||
```yml
|
||||
tests:
|
||||
- text: 你的<code>h1</code>元素应该有“Hello World”文本。
|
||||
testString: assert.isTrue((/hello(\s)+world/gi).test($('h1').text()));
|
||||
|
||||
```
|
||||
|
||||
</section>
|
||||
|
||||
## Challenge Seed
|
||||
<section id='challengeSeed'>
|
||||
|
||||
<div id='html-seed'>
|
||||
|
||||
```html
|
||||
<h1>Hello</h1>
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</section>
|
||||
|
||||
## Solution
|
||||
<section id='solution'>
|
||||
|
||||
```html
|
||||
<h1>Hello World</h1>
|
||||
```
|
||||
|
||||
</section>
|
80
curriculum/getChallenges.acceptance.test.js
Normal file
80
curriculum/getChallenges.acceptance.test.js
Normal file
@@ -0,0 +1,80 @@
|
||||
/* global expect */
|
||||
|
||||
const path = require('path');
|
||||
|
||||
const { parseMarkdown } = require('../tools/challenge-md-parser');
|
||||
const { parseTranslation } = require('./getChallenges');
|
||||
|
||||
/* eslint-disable max-len */
|
||||
const {
|
||||
SIMPLE_TRANSLATION
|
||||
} = require('../tools/challenge-md-parser/translation-parser/__mocks__/mock-comments');
|
||||
/* eslint-enable max-len */
|
||||
|
||||
describe('translation parser', () => {
|
||||
it('should combine to the correct object', () => {
|
||||
return Promise.all([
|
||||
parseMarkdown(path.resolve(__dirname, '__fixtures__/combined.md')),
|
||||
parseTranslation(
|
||||
path.resolve(__dirname, '__fixtures__/challenge.english.md'),
|
||||
path.resolve(__dirname, '__fixtures__/challenge.chinese.md'),
|
||||
SIMPLE_TRANSLATION
|
||||
)
|
||||
]).then(xs => expect(xs[1]).toEqual(xs[0]));
|
||||
});
|
||||
it('should translate known comments in html', () => {
|
||||
return Promise.all([
|
||||
parseMarkdown(
|
||||
path.resolve(__dirname, '__fixtures__/combined-html-comments.md')
|
||||
),
|
||||
parseTranslation(
|
||||
path.resolve(
|
||||
__dirname,
|
||||
'__fixtures__/challenge-html-comments.english.md'
|
||||
),
|
||||
path.resolve(__dirname, '__fixtures__/challenge.chinese.md'),
|
||||
SIMPLE_TRANSLATION
|
||||
)
|
||||
]).then(xs => expect(xs[1]).toEqual(xs[0]));
|
||||
});
|
||||
it('should translate known comments in jsx', () => {
|
||||
return Promise.all([
|
||||
parseMarkdown(
|
||||
path.resolve(__dirname, '__fixtures__/combined-jsx-comments.md')
|
||||
),
|
||||
parseTranslation(
|
||||
path.resolve(
|
||||
__dirname,
|
||||
'__fixtures__/challenge-jsx-comments.english.md'
|
||||
),
|
||||
path.resolve(__dirname, '__fixtures__/challenge.chinese.md'),
|
||||
SIMPLE_TRANSLATION
|
||||
)
|
||||
]).then(xs => expect(xs[1]).toEqual(xs[0]));
|
||||
});
|
||||
it('should translate known comments in js', () => {
|
||||
return Promise.all([
|
||||
parseMarkdown(
|
||||
path.resolve(__dirname, '__fixtures__/combined-js-comments.md')
|
||||
),
|
||||
parseTranslation(
|
||||
path.resolve(
|
||||
__dirname,
|
||||
'__fixtures__/challenge-js-comments.english.md'
|
||||
),
|
||||
path.resolve(__dirname, '__fixtures__/challenge.chinese.md'),
|
||||
SIMPLE_TRANSLATION
|
||||
)
|
||||
]).then(xs => expect(xs[1]).toEqual(xs[0]));
|
||||
});
|
||||
it('should handle a stripped down challenge', () => {
|
||||
return Promise.all([
|
||||
parseMarkdown(path.resolve(__dirname, '__fixtures__/combined.md')),
|
||||
parseTranslation(
|
||||
path.resolve(__dirname, '__fixtures__/challenge.english.md'),
|
||||
path.resolve(__dirname, '__fixtures__/challenge-stripped.chinese.md'),
|
||||
SIMPLE_TRANSLATION
|
||||
)
|
||||
]).then(xs => expect(xs[1]).toEqual(xs[0]));
|
||||
});
|
||||
});
|
68
curriculum/getChallenges.test.js
Normal file
68
curriculum/getChallenges.test.js
Normal file
@@ -0,0 +1,68 @@
|
||||
/* global expect */
|
||||
const {
|
||||
createChallenge,
|
||||
getChallengeLang,
|
||||
getEnglishPath,
|
||||
isEnglishChallenge
|
||||
} = require('./getChallenges');
|
||||
|
||||
/* eslint-disable max-len */
|
||||
const INVALID_PATH = 'not/challenge/path';
|
||||
const ENGLISH_PATH =
|
||||
'curriculum/challenges/english/01-responsive-web-design/applied-accessibility/add-a-text-alternative-to-images-for-visually-impaired-accessibility.english.md';
|
||||
const CHINESE_PATH =
|
||||
'curriculum/challenges/chinese/01-responsive-web-design/applied-accessibility/add-a-text-alternative-to-images-for-visually-impaired-accessibility.chinese.md';
|
||||
const NOT_LANGUAGE_PATH =
|
||||
'curriculum/challenges/chinese/01-responsive-web-design/applied-accessibility/add-a-text-alternative-to-images-for-visually-impaired-accessibility.notlang.md';
|
||||
const MISSING_LANGUAGE_PATH =
|
||||
'curriculum/challenges/chinese/01-responsive-web-design/applied-accessibility/add-a-text-alternative-to-images-for-visually-impaired-english.md';
|
||||
|
||||
/* eslint-enable max-len */
|
||||
|
||||
describe('create non-English challenge', () => {
|
||||
describe('createChallenge', () => {
|
||||
it('throws if the filename includes an invalid language', async () => {
|
||||
await expect(createChallenge(NOT_LANGUAGE_PATH)).rejects.toThrow(
|
||||
'notlang is not a accepted language'
|
||||
);
|
||||
});
|
||||
it('throws an error if the filename is missing a language', async () => {
|
||||
await expect(createChallenge(MISSING_LANGUAGE_PATH)).rejects.toThrow(
|
||||
`Missing language extension for
|
||||
${MISSING_LANGUAGE_PATH}`
|
||||
);
|
||||
});
|
||||
});
|
||||
describe('getEnglishPath', () => {
|
||||
it('returns the full path of the English version of the challenge', () => {
|
||||
expect(getEnglishPath(CHINESE_PATH)).toBe(ENGLISH_PATH);
|
||||
});
|
||||
it('throws an error if the path has the wrong directory structure', () => {
|
||||
expect(() => getEnglishPath(INVALID_PATH)).toThrow();
|
||||
});
|
||||
it('throws an error if the filename includes an invalid language', () => {
|
||||
expect(() => getEnglishPath(NOT_LANGUAGE_PATH)).toThrow();
|
||||
});
|
||||
it('throws an error if the filename is missing a language', () => {
|
||||
expect(() => getEnglishPath(MISSING_LANGUAGE_PATH)).toThrow();
|
||||
});
|
||||
});
|
||||
|
||||
describe('getChallengeLang', () => {
|
||||
it("returns 'english' if the challenge is English", () => {
|
||||
expect(getChallengeLang(ENGLISH_PATH)).toBe('english');
|
||||
});
|
||||
it("returns 'chinese' if the challenge is Chinese", () => {
|
||||
expect(getChallengeLang(CHINESE_PATH)).toBe('chinese');
|
||||
});
|
||||
});
|
||||
|
||||
describe('isEnglishChallenge', () => {
|
||||
it('returns true if the challenge is English', () => {
|
||||
expect(isEnglishChallenge(ENGLISH_PATH)).toBe(true);
|
||||
});
|
||||
it('returns false if the challenge is not English', () => {
|
||||
expect(isEnglishChallenge(CHINESE_PATH)).toBe(false);
|
||||
});
|
||||
});
|
||||
});
|
Reference in New Issue
Block a user