Skip to content

Commit 68e3340

Browse files
authored
Merge pull request #29 from DEFRA/fix/autocomplete-for-county
Fix incorrect autocomplete value for county
2 parents d935f70 + 0d4a33a commit 68e3340

File tree

2 files changed

+42
-3
lines changed

2 files changed

+42
-3
lines changed

src/server/plugins/engine/components/UkAddressField.test.ts

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
1-
import { ComponentType, type UkAddressFieldComponent } from '@defra/forms-model'
1+
import {
2+
ComponentType,
3+
type TextFieldComponent,
4+
type UkAddressFieldComponent
5+
} from '@defra/forms-model'
26

37
import { ComponentCollection } from '~/src/server/plugins/engine/components/ComponentCollection.js'
8+
import { UkAddressField } from '~/src/server/plugins/engine/components/UkAddressField.js'
49
import {
510
getAnswer,
611
type Field
@@ -272,6 +277,40 @@ describe('UkAddressField', () => {
272277
expect(result2.errors).toBeTruthy()
273278
expect(result3.errors).toBeTruthy()
274279
})
280+
281+
it('should ensure all address fields have valid autocomplete values', () => {
282+
const ukAddressField = new UkAddressField(
283+
{
284+
type: ComponentType.UkAddressField,
285+
name: 'testAddress',
286+
title: 'Test Address',
287+
options: {
288+
required: true,
289+
hideTitle: false
290+
}
291+
},
292+
{
293+
model
294+
}
295+
)
296+
297+
const expectedAutocompleteValues = [
298+
'address-line1',
299+
'address-line2',
300+
'address-level1',
301+
'address-level2',
302+
'postal-code'
303+
]
304+
305+
ukAddressField.collection.components.forEach((component) => {
306+
const addressFieldOptions =
307+
component.options as TextFieldComponent['options']
308+
309+
expect(expectedAutocompleteValues).toContain(
310+
addressFieldOptions.autocomplete
311+
)
312+
})
313+
})
275314
})
276315

277316
describe('State', () => {
@@ -396,7 +435,7 @@ describe('UkAddressField', () => {
396435
expect.objectContaining({
397436
model: getViewModel(address, 'county', {
398437
label: { text: 'County (optional)' },
399-
attributes: { autocomplete: 'county' },
438+
attributes: { autocomplete: 'address-level1' },
400439
value: address.county
401440
})
402441
}),

src/server/plugins/engine/components/UkAddressField.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ export class UkAddressField extends FormComponent {
7676
title: 'County',
7777
schema: { max: 100 },
7878
options: {
79-
autocomplete: 'county',
79+
autocomplete: 'address-level1',
8080
required: false,
8181
optionalText: !isRequired && (hideOptional || !hideTitle)
8282
}

0 commit comments

Comments
 (0)