Rather than relying on .lang.md this expects to find the English source challenge in /curriculum/challenges/english/<translationPath>
		
			
				
	
	
		
			85 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/* 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__/english/challenge.md'),
 | 
						|
        path.resolve(__dirname, '__fixtures__/chinese/challenge.md'),
 | 
						|
        SIMPLE_TRANSLATION,
 | 
						|
        'chinese'
 | 
						|
      )
 | 
						|
    ]).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__/english/challenge-html-comments.md'
 | 
						|
        ),
 | 
						|
        path.resolve(__dirname, '__fixtures__/chinese/challenge.md'),
 | 
						|
        SIMPLE_TRANSLATION,
 | 
						|
        'chinese'
 | 
						|
      )
 | 
						|
    ]).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__/english/challenge-jsx-comments.md'
 | 
						|
        ),
 | 
						|
        path.resolve(__dirname, '__fixtures__/chinese/challenge.md'),
 | 
						|
        SIMPLE_TRANSLATION,
 | 
						|
        'chinese'
 | 
						|
      )
 | 
						|
    ]).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__/english/challenge-js-comments.md'
 | 
						|
        ),
 | 
						|
        path.resolve(__dirname, '__fixtures__/chinese/challenge.md'),
 | 
						|
        SIMPLE_TRANSLATION,
 | 
						|
        'chinese'
 | 
						|
      )
 | 
						|
    ]).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__/english/challenge.md'),
 | 
						|
        path.resolve(__dirname, '__fixtures__/chinese/challenge-stripped.md'),
 | 
						|
        SIMPLE_TRANSLATION
 | 
						|
      )
 | 
						|
    ]).then(xs => expect(xs[1]).toEqual(xs[0]));
 | 
						|
  });
 | 
						|
});
 |