mirror of
https://github.com/scratchfoundation/scratch-www.git
synced 2024-11-29 18:46:20 -05:00
Revert "Revert "fixed country options to use full country name string as option value""
This commit is contained in:
parent
1f4aabd9d0
commit
2182853dc6
2 changed files with 25 additions and 14 deletions
|
@ -1060,23 +1060,25 @@ const dupeCommonCountries = module.exports.dupeCommonCountries = (startingCountr
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* registrationCountryOptions is the result of taking the standard countryInfo,
|
* registrationCountryOptions is the result of taking the standard countryInfo,
|
||||||
* and duplicating 'United States of America' and 'United Kingdom' at the top of the list.
|
* setting a 'value' key and a 'label' key both to the country data's 'name' value,
|
||||||
|
* but using the 'display' value for 'label' instead of 'name' if 'display' exists;
|
||||||
|
* then duplicating 'United States of America' and 'United Kingdom' at the top of the list.
|
||||||
* The result is an array like:
|
* The result is an array like:
|
||||||
* [
|
* [
|
||||||
* {code: 'us', name: 'United States', display: 'United States of America'},
|
* {value: 'United States', label: 'United States of America'},
|
||||||
* {code: 'gb', name: 'United Kingdom'},
|
* {value: 'United Kingdom', label: 'United Kingdom'},
|
||||||
* {code: 'af', name: 'Afghanistan'},
|
* {value: 'Afghanistan', label: 'Afghanistan'},
|
||||||
* ...
|
* ...
|
||||||
* {code: 'ae', name: 'United Arab Emirates'},
|
* {value: 'United Arab Emirates', label: 'United Arab Emirates'},
|
||||||
* {code: 'us', name: 'United States', display: 'United States of America'},
|
* {value: 'United States', label: 'United States of America'},
|
||||||
* {code: 'gb', name: 'United Kingdom'},
|
* {value: 'United Kingdom', label: 'United Kingdom'},
|
||||||
* {code: 'uz', name: 'Uzbekistan'},
|
* {value: 'Uzbekistan', label: 'Uzbekistan'},
|
||||||
* ...
|
* ...
|
||||||
* {code: 'zm', name: 'Zimbabwe'}
|
* {value: 'Zimbabwe', label: 'Zimbabwe'}
|
||||||
* ]
|
* ]
|
||||||
*/
|
*/
|
||||||
module.exports.registrationCountryOptions =
|
module.exports.registrationCountryOptions =
|
||||||
countryOptions(dupeCommonCountries(countryInfo, ['us', 'gb']), 'code');
|
countryOptions(dupeCommonCountries(countryInfo, ['us', 'gb']), 'name');
|
||||||
|
|
||||||
/* subdivisionOptions uses iso-3166 data to produce an array like:
|
/* subdivisionOptions uses iso-3166 data to produce an array like:
|
||||||
* [
|
* [
|
||||||
|
|
|
@ -74,6 +74,15 @@ describe('unit test lib/country-data.js', () => {
|
||||||
expect(ukItems.length).toEqual(2);
|
expect(ukItems.length).toEqual(2);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('registrationCountryOptions object uses country names for both option label and option value', () => {
|
||||||
|
expect(typeof registrationCountryOptions).toBe('object');
|
||||||
|
// test that there is one option with label and value === 'Brazil'
|
||||||
|
const brazilOptions = registrationCountryOptions.reduce((acc, thisCountry) => (
|
||||||
|
(thisCountry.value === 'Brazil' && thisCountry.label === 'Brazil') ? [...acc, thisCountry] : acc
|
||||||
|
), []);
|
||||||
|
expect(brazilOptions.length).toEqual(1);
|
||||||
|
});
|
||||||
|
|
||||||
test('registrationCountryOptions object places USA and UK at start, with display name versions', () => {
|
test('registrationCountryOptions object places USA and UK at start, with display name versions', () => {
|
||||||
expect(typeof registrationCountryOptions).toBe('object');
|
expect(typeof registrationCountryOptions).toBe('object');
|
||||||
const numCountries = countryInfo.length;
|
const numCountries = countryInfo.length;
|
||||||
|
@ -81,17 +90,17 @@ describe('unit test lib/country-data.js', () => {
|
||||||
// test that the two entries have been added to the start of the array, and that
|
// test that the two entries have been added to the start of the array, and that
|
||||||
// the name of the USA includes "America"
|
// the name of the USA includes "America"
|
||||||
expect(registrationCountryOptions.length).toEqual(numCountries + 2);
|
expect(registrationCountryOptions.length).toEqual(numCountries + 2);
|
||||||
expect(registrationCountryOptions[0]).toEqual({value: 'us', label: 'United States of America'});
|
expect(registrationCountryOptions[0]).toEqual({value: 'United States', label: 'United States of America'});
|
||||||
expect(registrationCountryOptions[1]).toEqual({value: 'gb', label: 'United Kingdom'});
|
expect(registrationCountryOptions[1]).toEqual({value: 'United Kingdom', label: 'United Kingdom'});
|
||||||
|
|
||||||
// test that there are now two entries for USA
|
// test that there are now two entries for USA
|
||||||
const usaOptions = registrationCountryOptions.reduce((acc, thisCountry) => (
|
const usaOptions = registrationCountryOptions.reduce((acc, thisCountry) => (
|
||||||
thisCountry.value === 'us' ? [...acc, thisCountry] : acc
|
thisCountry.value === 'United States' ? [...acc, thisCountry] : acc
|
||||||
), []);
|
), []);
|
||||||
expect(usaOptions.length).toEqual(2);
|
expect(usaOptions.length).toEqual(2);
|
||||||
// test that there are now two entries for UK
|
// test that there are now two entries for UK
|
||||||
const ukOptions = registrationCountryOptions.reduce((acc, thisCountry) => (
|
const ukOptions = registrationCountryOptions.reduce((acc, thisCountry) => (
|
||||||
thisCountry.value === 'gb' ? [...acc, thisCountry] : acc
|
thisCountry.value === 'United Kingdom' ? [...acc, thisCountry] : acc
|
||||||
), []);
|
), []);
|
||||||
expect(ukOptions.length).toEqual(2);
|
expect(ukOptions.length).toEqual(2);
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue