angular-docs-cn/aio/tools/translator/extractor.spec.ts

51 lines
1.5 KiB
TypeScript
Raw Normal View History

2018-03-01 14:07:51 +08:00
import { expect } from 'chai';
2018-03-01 22:35:54 +08:00
import { dirs } from './dirs';
import { gatherFromDirectory, gatherTranslations, listMarkdownFiles, splitAndTrim, } from './extractor';
2018-03-01 14:07:51 +08:00
2018-03-02 08:08:39 +08:00
describe('从对照翻译文件中采集生成字典', () => {
it('空字符串应该拆分成空数组', function () {
2018-03-01 14:07:51 +08:00
expect(splitAndTrim()).eql([]);
});
2018-03-02 08:08:39 +08:00
it('按照双行(忽略空格)拆分对照文本', function () {
2018-03-01 14:07:51 +08:00
const result = splitAndTrim(`a
b
c
d`);
expect(result[1]).eql(`b
c`);
});
2018-03-02 08:08:39 +08:00
it('生成原文和译文的对照表', () => {
2018-03-01 14:07:51 +08:00
const result = gatherTranslations(`
a
b
`);
expect(result).eql([{original: 'a', translation: '一'}]);
});
it('从真实的文件中采集(测试)', function () {
2018-03-01 14:07:51 +08:00
const fs = require('fs');
2018-03-01 22:35:54 +08:00
const content = fs.readFileSync(dirs.content + 'guide/forms.md', 'utf-8');
2018-03-01 14:07:51 +08:00
const result = gatherTranslations(content);
expect(result[0]).eql({original: '# Forms', translation: '# 表单'});
});
2018-03-02 08:08:39 +08:00
it('递归查找所有 markdown 文件', function () {
2018-03-01 22:35:54 +08:00
expect(listMarkdownFiles(dirs.content).length).greaterThan(10);
2018-03-01 14:07:51 +08:00
});
2018-03-02 08:08:39 +08:00
it('从对照文本的文件夹中采集生成字典(非测试)', () => {
2018-03-03 08:13:52 +08:00
gatherFromDirectory(dirs.aio + '../../content-1/', dirs.here + 'dict-1.json');
gatherFromDirectory(dirs.aio + '../../content-2/', dirs.here + 'dict-2.json');
gatherFromDirectory(dirs.aio + '../../content-3/', dirs.here + 'dict-3.json');
2018-03-01 14:07:51 +08:00
});
2018-03-01 14:07:51 +08:00
});