| 
									
										
										
										
											2020-02-24 15:03:21 +01:00
										 |  |  | /* 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( | 
					
						
							| 
									
										
										
										
											2020-08-28 17:10:37 +02:00
										 |  |  |         path.resolve(__dirname, '__fixtures__/english/challenge.md'), | 
					
						
							|  |  |  |         path.resolve(__dirname, '__fixtures__/chinese/challenge.md'), | 
					
						
							|  |  |  |         SIMPLE_TRANSLATION, | 
					
						
							|  |  |  |         'chinese' | 
					
						
							| 
									
										
										
										
											2020-02-24 15:03:21 +01:00
										 |  |  |       ) | 
					
						
							|  |  |  |     ]).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, | 
					
						
							| 
									
										
										
										
											2020-08-28 17:10:37 +02:00
										 |  |  |           '__fixtures__/english/challenge-html-comments.md' | 
					
						
							| 
									
										
										
										
											2020-02-24 15:03:21 +01:00
										 |  |  |         ), | 
					
						
							| 
									
										
										
										
											2020-08-28 17:10:37 +02:00
										 |  |  |         path.resolve(__dirname, '__fixtures__/chinese/challenge.md'), | 
					
						
							|  |  |  |         SIMPLE_TRANSLATION, | 
					
						
							|  |  |  |         'chinese' | 
					
						
							| 
									
										
										
										
											2020-02-24 15:03:21 +01:00
										 |  |  |       ) | 
					
						
							|  |  |  |     ]).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, | 
					
						
							| 
									
										
										
										
											2020-08-28 17:10:37 +02:00
										 |  |  |           '__fixtures__/english/challenge-jsx-comments.md' | 
					
						
							| 
									
										
										
										
											2020-02-24 15:03:21 +01:00
										 |  |  |         ), | 
					
						
							| 
									
										
										
										
											2020-08-28 17:10:37 +02:00
										 |  |  |         path.resolve(__dirname, '__fixtures__/chinese/challenge.md'), | 
					
						
							|  |  |  |         SIMPLE_TRANSLATION, | 
					
						
							|  |  |  |         'chinese' | 
					
						
							| 
									
										
										
										
											2020-02-24 15:03:21 +01:00
										 |  |  |       ) | 
					
						
							|  |  |  |     ]).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, | 
					
						
							| 
									
										
										
										
											2020-08-28 17:10:37 +02:00
										 |  |  |           '__fixtures__/english/challenge-js-comments.md' | 
					
						
							| 
									
										
										
										
											2020-02-24 15:03:21 +01:00
										 |  |  |         ), | 
					
						
							| 
									
										
										
										
											2020-08-28 17:10:37 +02:00
										 |  |  |         path.resolve(__dirname, '__fixtures__/chinese/challenge.md'), | 
					
						
							|  |  |  |         SIMPLE_TRANSLATION, | 
					
						
							|  |  |  |         'chinese' | 
					
						
							| 
									
										
										
										
											2020-02-24 15:03:21 +01:00
										 |  |  |       ) | 
					
						
							|  |  |  |     ]).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( | 
					
						
							| 
									
										
										
										
											2020-08-28 17:10:37 +02:00
										 |  |  |         path.resolve(__dirname, '__fixtures__/english/challenge.md'), | 
					
						
							|  |  |  |         path.resolve(__dirname, '__fixtures__/chinese/challenge-stripped.md'), | 
					
						
							| 
									
										
										
										
											2020-02-24 15:03:21 +01:00
										 |  |  |         SIMPLE_TRANSLATION | 
					
						
							|  |  |  |       ) | 
					
						
							|  |  |  |     ]).then(xs => expect(xs[1]).toEqual(xs[0])); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | }); |