70 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { expect } from 'chai';
 | |
| import { dirs } from './dirs';
 | |
| import { gatherTranslations, listMarkdownFiles, splitAndTrim, } from './extractor';
 | |
| 
 | |
| describe('从对照翻译文件中采集生成字典', () => {
 | |
|   it('空字符串应该拆分成空数组', function () {
 | |
|     expect(splitAndTrim()).eql([]);
 | |
|   });
 | |
|   it('按照双行(忽略空格)拆分对照文本', function () {
 | |
|     const result = splitAndTrim(`a
 | |
|     
 | |
|     
 | |
|     
 | |
|     b
 | |
|     c
 | |
|     
 | |
|     d`);
 | |
|     expect(result[1]).eql(`b
 | |
|     c`);
 | |
|   });
 | |
| 
 | |
|   it('生成原文和译文的对照表', () => {
 | |
|     const result = gatherTranslations(`
 | |
|     a
 | |
|     
 | |
|     一
 | |
|     
 | |
|     b
 | |
|     `);
 | |
|     expect(result).eql([{original: 'a', translation: '一'}]);
 | |
|   });
 | |
| 
 | |
|   it('处理 html 标签包裹的翻译文本', () => {
 | |
|     const result = gatherTranslations(`
 | |
|     <p>
 | |
|     a
 | |
|     </p>
 | |
| 
 | |
|     <p>
 | |
|     一
 | |
| </p>
 | |
|     
 | |
|     `);
 | |
|     expect(result).eql([{original: 'a', translation: '一'}]);
 | |
| 
 | |
|   });
 | |
| 
 | |
|   it('处理 a 标签包裹的单行翻译文本', () => {
 | |
|     const result = gatherTranslations(`
 | |
|     <a>a</a>
 | |
| 
 | |
|     <a>一</a>
 | |
|     
 | |
|     `);
 | |
|     expect(result).eql([{original: '<a>a</a>', translation: '<a>一</a>'}]);
 | |
| 
 | |
|   });
 | |
| 
 | |
|   it('从真实的文件中采集(测试)', function () {
 | |
|     const fs = require('fs');
 | |
|     const content = fs.readFileSync(dirs.content + 'guide/forms.md', 'utf-8');
 | |
|     const result = gatherTranslations(content);
 | |
|     expect(result[0]).eql({original: '# Forms', translation: '# 表单'});
 | |
|   });
 | |
| 
 | |
|   it('递归查找所有 markdown 文件', function () {
 | |
|     expect(listMarkdownFiles(dirs.content).length).greaterThan(10);
 | |
|   });
 | |
| });
 |