Unverified Commit dc79eb54 authored by Benjamin Wheeler's avatar Benjamin Wheeler Committed by GitHub

Merge pull request #3974 from benjiwheeler/move-to-country-data-lib

move country name lookup to library
parents 7b76c195 d388eef5
...@@ -456,7 +456,7 @@ class DemographicsStep extends React.Component { ...@@ -456,7 +456,7 @@ class DemographicsStep extends React.Component {
// look up country name using user's country code selection ('us' -> 'United States') // look up country name using user's country code selection ('us' -> 'United States')
getCountryName (values) { getCountryName (values) {
if (values.countryCode) { if (values.countryCode) {
const countryInfo = countryData.lookupCountryInfo(values.countryCode); const countryInfo = countryData.lookupCountryByCode(values.countryCode);
if (countryInfo) { if (countryInfo) {
return countryInfo.name; return countryInfo.name;
} }
...@@ -466,7 +466,7 @@ class DemographicsStep extends React.Component { ...@@ -466,7 +466,7 @@ class DemographicsStep extends React.Component {
// look up country code from country label ('United States' -> 'us') // look up country code from country label ('United States' -> 'us')
// if `countryName` is not found, including if it's null or undefined, then this function will return undefined. // if `countryName` is not found, including if it's null or undefined, then this function will return undefined.
getCountryCode (countryName) { getCountryCode (countryName) {
const country = countryData.countryInfo.find(countryItem => countryItem.name === countryName); const country = countryData.lookupCountryByName(countryName);
return country && country.code; return country && country.code;
} }
handleValidSubmit (formData) { handleValidSubmit (formData) {
......
...@@ -1036,10 +1036,14 @@ const countryOptions = module.exports.countryOptions = (startingCountryInfo, val ...@@ -1036,10 +1036,14 @@ const countryOptions = module.exports.countryOptions = (startingCountryInfo, val
)) ))
); );
module.exports.lookupCountryInfo = countryCode => ( module.exports.lookupCountryByCode = countryCode => (
countryInfo.find(country => country.code === countryCode) countryInfo.find(country => country.code === countryCode)
); );
module.exports.lookupCountryByName = countryName => (
countryInfo.find(country => country.name === countryName)
);
/** /**
* Function dupeCommonCountries(): * Function dupeCommonCountries():
* takes startingCountryInfo, and duplicates any number of its country labels * takes startingCountryInfo, and duplicates any number of its country labels
......
const { const {
countryInfo, countryInfo,
countryOptions, countryOptions,
lookupCountryInfo, lookupCountryByCode,
lookupCountryByName,
dupeCommonCountries, dupeCommonCountries,
registrationCountryCodeOptions, registrationCountryCodeOptions,
registrationCountryNameOptions, registrationCountryNameOptions,
...@@ -45,9 +46,17 @@ describe('unit test lib/country-data.js', () => { ...@@ -45,9 +46,17 @@ describe('unit test lib/country-data.js', () => {
expect(szInfo.label).toEqual('Eswatini'); expect(szInfo.label).toEqual('Eswatini');
}); });
test('lookupCountryInfo() will find country info', () => { test('lookupCountryByCode() will find country info', () => {
expect(typeof lookupCountryInfo).toBe('function'); expect(typeof lookupCountryByCode).toBe('function');
const eswatiniInfo = lookupCountryInfo('sz'); const eswatiniInfo = lookupCountryByCode('sz');
expect(eswatiniInfo.name).toEqual('Swaziland');
expect(eswatiniInfo.display).toEqual('Eswatini');
expect(eswatiniInfo.code).toEqual('sz');
});
test('lookupCountryByName() will find country info', () => {
expect(typeof lookupCountryByName).toBe('function');
const eswatiniInfo = lookupCountryByName('Swaziland');
expect(eswatiniInfo.name).toEqual('Swaziland'); expect(eswatiniInfo.name).toEqual('Swaziland');
expect(eswatiniInfo.display).toEqual('Eswatini'); expect(eswatiniInfo.display).toEqual('Eswatini');
expect(eswatiniInfo.code).toEqual('sz'); expect(eswatiniInfo.code).toEqual('sz');
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment