From 83f17807d45044f2770f474b77681d43d565dc0f Mon Sep 17 00:00:00 2001 From: Daniel Schreiber Date: Wed, 20 Jul 2022 13:26:34 +0200 Subject: [PATCH] fix: do not change translation state for non-updates (changes only in collapsible whitespace) --- __tests__/merge.test.ts | 35 +++++++++++++++++++++++++++++++++++ src/merge.ts | 2 +- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/__tests__/merge.test.ts b/__tests__/merge.test.ts index 872c11a..6944733 100644 --- a/__tests__/merge.test.ts +++ b/__tests__/merge.test.ts @@ -1172,6 +1172,41 @@ describe('merge', () => { '')); }); + test('should not update node with only collapsible whitespace change', () => { + const sourceFileContent = '\n' + + ' \n' + + ' \n' + + ' \n' + + ' source val \n' + + ' \n' + + ' \n' + + ' \n' + + ''; + const destFileContent = '\n' + + ' \n' + + ' \n' + + ' \n' + + ' source val \n' + + ' target val\n' + + ' \n' + + ' \n' + + ' \n' + + ''; + + const result = merge(sourceFileContent, destFileContent); + + expect(norm(result)).toEqual(norm('\n' + + ' \n' + + ' \n' + + ' \n' + + ' source val \n' + + ' target val\n' + + ' \n' + + ' \n' + + ' \n' + + '')); + }); + test('should update changed node without updating translation state if disabled', () => { const sourceFileContent = '\n' + ' \n' + diff --git a/src/merge.ts b/src/merge.ts index ef5a749..3706329 100644 --- a/src/merge.ts +++ b/src/merge.ts @@ -38,7 +38,7 @@ function toString(...nodes: XmlNode[]): string { } function collapseWhitespace(destSourceText: string) { - return destSourceText.replace(/\s+/, ' '); + return destSourceText.replace(/\s+/g, ' '); } function getUnits(doc: XmlDocument, xliffVersion: '1.2' | '2.0') {