From db47309e169e025ede79ad2362daf87e1769b2a3 Mon Sep 17 00:00:00 2001 From: Kelly Date: Wed, 17 Dec 2025 11:05:10 +0000 Subject: [PATCH] TRP-787: Add ability to not move GB to top of dropdownlist --- API_DOCS.md | 9 ++++++--- hmpo-countries-lib-7.1.2.tgz | Bin 0 -> 16150 bytes lib/index.js | 8 ++++---- test/lib/spec.index.js | 17 +++++++++++++++++ 4 files changed, 27 insertions(+), 7 deletions(-) create mode 100644 hmpo-countries-lib-7.1.2.tgz diff --git a/API_DOCS.md b/API_DOCS.md index b4e3581..01fa49c 100644 --- a/API_DOCS.md +++ b/API_DOCS.md @@ -352,12 +352,13 @@ Returns **([string][70] | [undefined][75])** The slug version of the country's n ## sortCountryList Sorts a list of country objects by their `displayName` property. -Moves the country with `countryCode` 'GB' (United Kingdom) to the top of the list if present. +Conditional to move the country with `countryCode` 'GB' (United Kingdom) to the top of the list if present. +The GB move to top is optional as there are some instances where this is not required. ### Parameters -* `list` **[Array][74]<[Object][69]>** The array of country objects to sort. - Each object should have at least `displayName` and `countryCode` properties. +* `list` **[boolean][72]** Whether the GB country entry should move to top. Each object should have at least `displayName` and `countryCode` properties. +* `moveGbToTop` (optional, default `true`) ### Examples @@ -389,6 +390,7 @@ Optionally uses Welsh display names based on the `isWelsh` flag. * `list` **[Array][74]<[Object][69]>** The array of country objects to transform. Each object should have `countryCode`, `displayName`, and `displayNameWelsh` properties. * `isWelsh` **[boolean][72]** Whether to use the Welsh display name (`displayNameWelsh`) instead of the default (`displayName`). +* `moveGbToTop` (optional, default `true`) ### Examples @@ -419,6 +421,7 @@ A wrapper function around `dropdownList(list, isWelsh)`. ### Parameters * `isWelsh` **[boolean][72]** Whether to use the Welsh display name (`displayNameWelsh`) instead of the default (`displayName`). +* `moveGbToTop` (optional, default `true`) Returns **[Array][74]<[Object][69]>** An array of objects formatted for use in dropdowns, each containing `value`, `text`, and `label` properties. diff --git a/hmpo-countries-lib-7.1.2.tgz b/hmpo-countries-lib-7.1.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..aef2fab55b54cbe3c62f2ce2447a4ac9686f1a91 GIT binary patch literal 16150 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 literal 0 HcmV?d00001 diff --git a/lib/index.js b/lib/index.js index 0ffff67..7c5b03b 100644 --- a/lib/index.js +++ b/lib/index.js @@ -409,8 +409,8 @@ class CountriesCachedModel { * // { value: 'FR', text: 'France', label: 'France' } * // ] */ - dropdownList(list, isWelsh) { - list = this.sortCountryList(list); + dropdownList(list, isWelsh, moveGbToTop = true) { + list = this.sortCountryList(list, moveGbToTop); return list.map(i => ({ value: i.countryCode, text: isWelsh ? i.displayNameWelsh : i.displayName, @@ -428,8 +428,8 @@ class CountriesCachedModel { * @returns {Array} - An array of objects formatted for use in dropdowns, * each containing `value`, `text`, and `label` properties. */ - dropdownListBirthCountries(isWelsh) { - return this.dropdownList(this.getBirthCountries(), isWelsh); + dropdownListBirthCountries(isWelsh, moveGbToTop = true) { + return this.dropdownList(this.getBirthCountries(moveGbToTop), isWelsh, moveGbToTop); } /** diff --git a/test/lib/spec.index.js b/test/lib/spec.index.js index 2f7b7a8..cc0f263 100644 --- a/test/lib/spec.index.js +++ b/test/lib/spec.index.js @@ -564,6 +564,17 @@ describe('CountriesCachedModel', () => { }); describe('dropdownList', () => { + it('turns a list of countries into sorted drop down select box options', () => { + const items = instance.dropdownList(countries, false, false); + + items.should.deep.equal([ + { value: 'BA', text: 'Bar', label: 'Bar' }, + { value: 'AA', text: 'Foo', label: 'Foo' }, + { value: 'NA', text: 'Narnia', label: 'Narnia' }, + { value: 'GB', text: 'United Kingdom', label: 'United Kingdom' }, + ]); + }); + it('turns a list of countries into sorted drop down select box options with GB at the top', () => { const items = instance.dropdownList(countries, false); @@ -594,6 +605,12 @@ describe('CountriesCachedModel', () => { items.should.deep.equal([unitedKingdom, bar, foo, narnia]); }); + it('turns a list of countries into sorted list with GB at the top by default when flag not provided', () => { + const items = instance.sortCountryList(countries); + + items.should.deep.equal([unitedKingdom, bar, foo, narnia]); + }); + it('turns a list of countries into sorted list', () => { const items = instance.sortCountryList(countries, false);