From ced319d1b4641faf57664958c2e6fabad9071920 Mon Sep 17 00:00:00 2001 From: Daniel Schreiber Date: Thu, 24 Mar 2022 14:33:01 +0100 Subject: [PATCH] fix: option "sourceLanguageTargetFile" should auto update targets fixes #16 --- package-lock.json | 6 ++-- package.json | 2 +- src/builder.spec.ts | 86 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 90 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 96b26d2..fc4e60a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3536,9 +3536,9 @@ "dev": true }, "xliff-simple-merge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/xliff-simple-merge/-/xliff-simple-merge-0.10.0.tgz", - "integrity": "sha512-LlEbTFH0OCi5OQbVTnEAamNjyFM7MbXB+BfeA2QS1XUPBGaXKpGemUXSc631sCznJ3MXWTGKz/8Jbna32ahWFw==", + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/xliff-simple-merge/-/xliff-simple-merge-0.10.1.tgz", + "integrity": "sha512-n6kL0BPAuriRqE22AKpRmW2BOpDGK0qOhMz5rIVD2XqPxxrMGraeEuvUJoGclstKexBkBgrXsWU14JtanYRnvQ==", "requires": { "commander": "~8.3.0", "js-levenshtein": "~1.1.6", diff --git a/package.json b/package.json index 04bf385..69690d9 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "@angular-devkit/core": "^13.0.0", "@angular-devkit/schematics": "^13.0.0", "@schematics/angular": "^13.0.0", - "xliff-simple-merge": "~0.10.0", + "xliff-simple-merge": "~0.10.1", "xml_normalize": "~0.8.3" }, "devDependencies": { diff --git a/src/builder.spec.ts b/src/builder.spec.ts index c6aaffe..ee6b54d 100644 --- a/src/builder.spec.ts +++ b/src/builder.spec.ts @@ -213,6 +213,92 @@ describe('Builder', () => { ' \n' + ''); }); + test('extract-and-merge xlf 2.0 with specified sourceLanguageTargetFile should update target of sourceLanguageTargetFile', async () => { + await fs.writeFile('builder-test/messages.xlf', '\n' + + ' \n' + + ' \n' + + ' \n' + + ' source val changed\n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' source val2\n' + + ' \n' + + ' \n' + + ' \n' + + '', 'utf8'); + await fs.writeFile('builder-test/messages.fr.xlf', '\n' + + ' \n' + + ' \n' + + ' \n' + + ' source val\n' + + ' target val\n' + + ' \n' + + ' \n' + + ' \n' + + '', 'utf8'); + await fs.writeFile('builder-test/messages.en.xlf', '\n' + + ' \n' + + ' \n' + + ' \n' + + ' source val\n' + + ' source val\n' + + ' \n' + + ' \n' + + ' \n' + + '', 'utf8'); + + // A "run" can have multiple outputs, and contains progress information. + const run = await architect.scheduleTarget({project: 'builder-test', target: 'extract-i18n-merge'}, { + format: 'xlf2', + targetFiles: ['messages.fr.xlf', 'messages.en.xlf'], + sourceLanguageTargetFile: 'messages.en.xlf', + outputPath: 'builder-test', + }); + + await run.result; + const result = await run.result; + expect(result.success).toBeTruthy(); + await run.stop(); + + // Expect that the copied file is the same as its source. + const targetContent1 = await fs.readFile('builder-test/messages.fr.xlf', 'utf8'); + expect(targetContent1).toEqual('\n' + + ' \n' + + ' \n' + + ' \n' + + ' source val changed\n' + + ' target val\n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' source val2\n' + + ' source val2\n' + + ' \n' + + ' \n' + + ' \n' + + ''); + + const targetContent2 = await fs.readFile('builder-test/messages.en.xlf', 'utf8'); + expect(targetContent2).toEqual('\n' + + ' \n' + + ' \n' + + ' \n' + + ' source val changed\n' + + ' source val changed\n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' source val2\n' + + ' source val2\n' + + ' \n' + + ' \n' + + ' \n' + + ''); + }); test('extract-and-merge xlf 1.2', async () => { await fs.writeFile('builder-test/messages.xlf', '\n' +