improved use of es6 native array methods

This commit is contained in:
Marco Pesani 2017-12-19 12:03:22 +01:00
parent 6cb414910e
commit 7da75d07f6
3 changed files with 22 additions and 12 deletions

File diff suppressed because one or more lines are too long

View File

@ -7,7 +7,7 @@ import {
CODICI_CATASTALI
} from './constants'
import { deburr, replace } from 'lodash'
import { deburr } from 'lodash'
export default class CodiceFiscale {
static compute (codiceFiscaleObject) {
@ -84,21 +84,24 @@ export default class CodiceFiscale {
}
static findComuneCode (birthplace, birthplaceProvincia) {
const code = CODICI_CATASTALI[birthplaceProvincia].reduce((accumulator, comune) => {
if (this.normalizeString(comune[0]) === this.normalizeString(birthplace)) {
accumulator = comune[1]
if (!CODICI_CATASTALI[birthplaceProvincia]) {
throw new Error('Provincia not found')
}
return accumulator
}, undefined)
if (code === undefined) {
const comune = CODICI_CATASTALI[birthplaceProvincia]
.find(comune => {
return this.normalizeString(comune[0]) === this.normalizeString(birthplace)
})
if (comune === undefined) {
throw new Error('Comune not found')
}
return code
return comune[1]
}
static normalizeString (str) {
return replace(deburr(str).trim().toUpperCase(), /('|\s)/ig, '')
return deburr(str)
.trim()
.toUpperCase()
.replace(/('|\s)/ig, '')
}
static getOmocodie (code) {

View File

@ -122,6 +122,13 @@ describe('CodiceFiscale.findComuneCode', () => {
expect(CodiceFiscale.findComuneCode('Riccò del Golfo di Spezia', 'SP')).toBe('H275')
})
test('se la provincia non esiste lancia un eccezione', () => {
var comuneInventato = function () {
CodiceFiscale.findComuneCode('Pufflandia', 'XX')
}
expect(comuneInventato).toThrowError('Provincia not found')
})
test('se il comune non esiste lancia un eccezione', () => {
var comuneInventato = function () {
CodiceFiscale.findComuneCode('Pufflandia', 'RM')