mirror of
https://github.com/danog/CodiceFiscaleJS.git
synced 2024-11-26 20:14:55 +01:00
improved use of es6 native array methods
This commit is contained in:
parent
6cb414910e
commit
7da75d07f6
2
dist/codice.fiscale.js
vendored
2
dist/codice.fiscale.js
vendored
File diff suppressed because one or more lines are too long
23
src/index.js
23
src/index.js
@ -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) {
|
||||
|
@ -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')
|
||||
|
Loading…
Reference in New Issue
Block a user