Skip to content

Commit 96e6497

Browse files
committed
add test and fix issue with partially filled translations
1 parent 3f0e887 commit 96e6497

File tree

2 files changed

+68
-54
lines changed

2 files changed

+68
-54
lines changed

packages/bygger/src/translations/utils/editFormTranslationsUtils.test.ts

+67-53
Original file line numberDiff line numberDiff line change
@@ -4,68 +4,68 @@ import {
44
FormsApiGlobalTranslation,
55
MockedComponentObjectForTest,
66
} from '@navikt/skjemadigitalisering-shared-domain';
7-
import { generateAndPopulateTranslationsForForm } from './editFormTranslationsUtils';
7+
import { generateAndPopulateTranslationsForForm, generateUnsavedGlobalTranslations } from './editFormTranslationsUtils';
88

99
const { createFormsApiFormObject, createPanelObject, createDummyTextfield, createDummySelectComponent } =
1010
MockedComponentObjectForTest;
1111

1212
describe('editFormTranslationsUtils', () => {
13-
describe('generateAndPopulateTranslationsForForm', () => {
14-
let form: Form;
13+
let form: Form;
1514

16-
beforeEach(() => {
17-
form = createFormsApiFormObject(
18-
[
19-
createPanelObject('Side 1', [
20-
createDummyTextfield('keyBasedTranslation'),
21-
createDummyTextfield('Tekst uten oversettelse'),
22-
createDummyTextfield('Tekst med oversettelse'),
23-
createDummyTextfield('Tekst med globalt overskrevet oversettelse'),
24-
createDummyTextfield('Tekst uten oversettelse, med global oversettelse'),
25-
createDummySelectComponent('Hjemmelaget landvelger', [{ value: 'Norge', label: 'Norge' }]),
26-
]),
27-
],
28-
'Form title',
29-
);
30-
});
15+
beforeEach(() => {
16+
form = createFormsApiFormObject(
17+
[
18+
createPanelObject('Side 1', [
19+
createDummyTextfield('keyBasedTranslation'),
20+
createDummyTextfield('Tekst uten oversettelse'),
21+
createDummyTextfield('Tekst med oversettelse'),
22+
createDummyTextfield('Tekst med globalt overskrevet oversettelse'),
23+
createDummyTextfield('Tekst uten oversettelse, med global oversettelse'),
24+
createDummySelectComponent('Hjemmelaget landvelger', [{ value: 'Norge', label: 'Norge' }]),
25+
]),
26+
],
27+
'Form title',
28+
);
29+
});
3130

32-
const storedTranslations: Record<string, FormsApiFormTranslation> = {
33-
keyBasedTranslation: {
34-
key: 'keyBasedTranslation',
35-
nb: 'Nøkkelbasert oversettelse',
36-
en: 'Key based translation',
37-
},
38-
'Tekst med oversettelse': {
39-
key: 'Tekst med oversettelse',
40-
nb: 'Tekst med oversettelse',
41-
en: 'Text with translation',
42-
},
43-
'Tekst med globalt overskrevet oversettelse': {
44-
key: 'Tekst med globalt overskrevet oversettelse',
45-
nb: 'Tekst med globalt overskrevet oversettelse',
46-
globalTranslationId: 1,
47-
},
48-
};
31+
const storedTranslations: Record<string, FormsApiFormTranslation> = {
32+
keyBasedTranslation: {
33+
key: 'keyBasedTranslation',
34+
nb: 'Nøkkelbasert oversettelse',
35+
en: 'Key based translation',
36+
},
37+
'Tekst med oversettelse': {
38+
key: 'Tekst med oversettelse',
39+
nb: 'Tekst med oversettelse',
40+
en: 'Text with translation',
41+
},
42+
'Tekst med globalt overskrevet oversettelse': {
43+
key: 'Tekst med globalt overskrevet oversettelse',
44+
nb: 'Tekst med globalt overskrevet oversettelse',
45+
globalTranslationId: 1,
46+
},
47+
};
4948

50-
const globalTranslations: Record<string, FormsApiGlobalTranslation> = {
51-
'Tekst med globalt overskrevet oversettelse': {
52-
id: 1,
53-
key: 'Tekst med globalt overskrevet oversettelse',
54-
nb: 'Tekst med globalt overskrevet oversettelse',
55-
nn: 'Global Tekst NN',
56-
en: 'Global Text EN',
57-
tag: 'statiske-tekster',
58-
},
59-
'Tekst uten oversettelse, med global oversettelse': {
60-
id: 2,
61-
key: 'Tekst uten oversettelse, med global oversettelse',
62-
nb: 'Tekst uten oversettelse, med global oversettelse',
63-
nn: 'Tekst uten oversettelse, med global oversettelse NN',
64-
en: 'Key based global translation EN',
65-
tag: 'statiske-tekster',
66-
},
67-
};
49+
const globalTranslations: Record<string, FormsApiGlobalTranslation> = {
50+
'Tekst med globalt overskrevet oversettelse': {
51+
id: 1,
52+
key: 'Tekst med globalt overskrevet oversettelse',
53+
nb: 'Tekst med globalt overskrevet oversettelse',
54+
nn: 'Global Tekst NN',
55+
en: 'Global Text EN',
56+
tag: 'statiske-tekster',
57+
},
58+
'Tekst uten oversettelse, med global oversettelse': {
59+
id: 2,
60+
key: 'Tekst uten oversettelse, med global oversettelse',
61+
nb: 'Tekst uten oversettelse, med global oversettelse',
62+
nn: 'Tekst uten oversettelse, med global oversettelse NN',
63+
en: 'Key based global translation EN',
64+
tag: 'statiske-tekster',
65+
},
66+
};
6867

68+
describe('generateAndPopulateTranslationsForForm', () => {
6969
it('should populate translations from stored translations', () => {
7070
const result = generateAndPopulateTranslationsForForm(form, storedTranslations, globalTranslations);
7171
expect(result).toEqual([
@@ -112,4 +112,18 @@ describe('editFormTranslationsUtils', () => {
112112
]);
113113
});
114114
});
115+
116+
describe('generateUnsavedGlobalTranslations', () => {
117+
it('should return global translations for texts without stored translations', () => {
118+
expect(generateUnsavedGlobalTranslations(form, storedTranslations, globalTranslations)).toEqual([
119+
{
120+
en: 'Key based global translation EN',
121+
globalTranslationId: 2,
122+
key: 'Tekst uten oversettelse, med global oversettelse',
123+
nb: 'Tekst uten oversettelse, med global oversettelse',
124+
nn: 'Tekst uten oversettelse, med global oversettelse NN',
125+
},
126+
]);
127+
});
128+
});
115129
});

packages/bygger/src/translations/utils/editFormTranslationsUtils.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ const generateUnsavedGlobalTranslations = (
4444
globalTranslations: Record<string, FormsApiGlobalTranslation>,
4545
) => {
4646
return generateAndPopulateTranslationsForForm(form, {}, globalTranslations).filter(
47-
(translation) => !storedTranslations[translation.nb ?? translation.key],
47+
(translation) => translation.globalTranslationId && !storedTranslations[translation.nb ?? translation.key],
4848
);
4949
};
5050

0 commit comments

Comments
 (0)