Remove redundant stockType field mapping, refactor location handling in identifier mapper, and update related tests.
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/pr/woodpecker Pipeline was successful

This commit is contained in:
2026-04-11 02:33:47 +02:00
parent 9e3245a427
commit ca9517508d
2 changed files with 24 additions and 11 deletions
@@ -118,7 +118,6 @@ export function mapLookupItemToForm({
setField('identifierCode', textValue('identifier_code')); setField('identifierCode', textValue('identifier_code'));
setField('name', textValue('name')); setField('name', textValue('name'));
setField('description', textValue('description')); setField('description', textValue('description'));
setField('stockType', textValue('stock_type'));
setField('level', textValue('level')); setField('level', textValue('level'));
setField('quantity', numberValue('quantity_initial')); setField('quantity', numberValue('quantity_initial'));
setField('uom', textValue('uom_symbol')); setField('uom', textValue('uom_symbol'));
@@ -138,14 +137,14 @@ export function mapLookupItemToForm({
setField('expirationDate', ''); setField('expirationDate', '');
} }
const canSetLocation = !String(nextForm.locationId || '').trim();
const locationUuid = nonEmptyText(lookupItem?.location_initial_uuid_b64); const locationUuid = nonEmptyText(lookupItem?.location_initial_uuid_b64);
if (canSetLocation && locationUuid) { if (locationUuid) {
const matchingLocation = locations.find((entry) => entry.uuid_b64 === locationUuid); const matchingLocation = locations.find((entry) => entry.uuid_b64 === locationUuid);
if (matchingLocation) { if (matchingLocation) {
nextForm.locationId = String(matchingLocation.id); setField('locationId', String(matchingLocation.id));
if (nextLocationSearch !== matchingLocation.name) {
nextLocationSearch = matchingLocation.name; nextLocationSearch = matchingLocation.name;
didUpdate = true; }
} }
} }
@@ -65,7 +65,7 @@ describe('identifier lookup form mapper', () => {
expect(result.form.name).toBe('Yogurt'); expect(result.form.name).toBe('Yogurt');
expect(result.form.search).toBe('Yogurt'); expect(result.form.search).toBe('Yogurt');
expect(result.form.description).toBe('Plain yogurt'); expect(result.form.description).toBe('Plain yogurt');
expect(result.form.stockType).toBe('measured'); expect(result.form.stockType).toBe('binary');
expect(result.form.level).toBe('low'); expect(result.form.level).toBe('low');
expect(result.form.quantity).toBe('0'); expect(result.form.quantity).toBe('0');
expect(result.form.uom).toBe('ml'); expect(result.form.uom).toBe('ml');
@@ -124,7 +124,7 @@ describe('identifier lookup form mapper', () => {
expect(result.form.name).toBe(''); expect(result.form.name).toBe('');
expect(result.form.search).toBe(''); expect(result.form.search).toBe('');
expect(result.form.description).toBe(''); expect(result.form.description).toBe('');
expect(result.form.stockType).toBe(''); expect(result.form.stockType).toBe('descriptive');
expect(result.form.level).toBe(''); expect(result.form.level).toBe('');
expect(result.form.quantity).toBe(''); expect(result.form.quantity).toBe('');
expect(result.form.uom).toBe(''); expect(result.form.uom).toBe('');
@@ -146,7 +146,7 @@ describe('identifier lookup form mapper', () => {
expect(days).toBe(10); expect(days).toBe(10);
}); });
it('updates location only when current form location is empty', () => { it('updates location when lookup provides one', () => {
const lookupItem = { const lookupItem = {
location_initial_uuid_b64: 'loc-fridge', location_initial_uuid_b64: 'loc-fridge',
}; };
@@ -165,9 +165,23 @@ describe('identifier lookup form mapper', () => {
locations, locations,
}); });
expect(withExistingLocation.form.locationId).toBe('8'); expect(withExistingLocation.form.locationId).toBe('5');
expect(withExistingLocation.locationSearch).toBeNull(); expect(withExistingLocation.locationSearch).toBe('Fridge');
expect(withoutLocation.form.locationId).toBe('5'); expect(withoutLocation.form.locationId).toBe('5');
expect(withoutLocation.locationSearch).toBe('Fridge'); expect(withoutLocation.locationSearch).toBe('Fridge');
}); });
it('keeps location unchanged when lookup location is null', () => {
const form = createForm({ locationId: '9' });
const result = mapLookupItemToForm({
form,
lookupItem: {
location_initial_uuid_b64: null,
},
locations: [{ id: 5, uuid_b64: 'loc-fridge', name: 'Fridge' }],
});
expect(result.form.locationId).toBe('9');
expect(result.locationSearch).toBeNull();
});
}); });