/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import './init';
import * as fs from 'fs';
import * as path from 'path';
const EXPECTED_XMB = `
]>
other-3rdP-component
multi-lines
translate me
Welcome
`;
const EXPECTED_XLIFF = `
node_modules/third_party/other_comp.d.ts
1
src/basic.ts
1
desc
meaning
src/basic.ts
5
src/entry_components.ts
1
`;
const EXPECTED_XLIFF2 = `
node_modules/third_party/other_comp.d.ts:1,2
desc
meaning
src/basic.ts:1
src/basic.ts:5
src/entry_components.ts:1
`;
describe('template i18n extraction output', () => {
const outDir = 'out';
it('should extract i18n messages as xmb', () => {
const xmbOutput = path.join(outDir, 'custom_file.xmb');
expect(fs.existsSync(xmbOutput)).toBeTruthy();
const xmb = fs.readFileSync(xmbOutput, {encoding: 'utf-8'});
expect(xmb).toEqual(EXPECTED_XMB);
});
it('should extract i18n messages as xliff', () => {
const xlfOutput = path.join(outDir, 'messages.xlf');
expect(fs.existsSync(xlfOutput)).toBeTruthy();
const xlf = fs.readFileSync(xlfOutput, {encoding: 'utf-8'});
expect(xlf).toEqual(EXPECTED_XLIFF);
});
it('should extract i18n messages as xliff version 2.0', () => {
const xlfOutput = path.join(outDir, 'messages.xliff2.xlf');
expect(fs.existsSync(xlfOutput)).toBeTruthy();
const xlf = fs.readFileSync(xlfOutput, {encoding: 'utf-8'});
expect(xlf).toEqual(EXPECTED_XLIFF2);
});
it('should not emit js', () => {
const files = fs.readdirSync(outDir);
files.forEach(f => expect(f).not.toMatch(/\.js$/));
});
});