Skip to content

Commit

Permalink
fix(cdc): rename isCitizenDigitalCertificateNumber to isCdcNumber to …
Browse files Browse the repository at this point in the history
…simplify API call
  • Loading branch information
enylin committed May 26, 2024
1 parent dc7d070 commit 4d52b36
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 24 deletions.
30 changes: 13 additions & 17 deletions src/citizen-digital-certificate-number.test.ts
Original file line number Diff line number Diff line change
@@ -1,27 +1,23 @@
import { isCitizenDigitalCertificateNumber } from './citizen-digital-certificate-number'
import { isCdcNumber } from './citizen-digital-certificate-number'

describe('isCitizenDigitalCertificateNumber', () => {
describe('isCdcNumber', () => {
it('should only accept strings with length 16', () => {
expect(isCitizenDigitalCertificateNumber({} as string)).toBe(false)
expect(
isCitizenDigitalCertificateNumber(47809425348791 as unknown as string)
).toBe(false)
expect(
isCitizenDigitalCertificateNumber(undefined as unknown as string)
).toBe(false)
expect(isCitizenDigitalCertificateNumber('AB123456789012345')).toBe(false)
expect(isCitizenDigitalCertificateNumber('AB1234567890123')).toBe(false)
expect(isCdcNumber({} as string)).toBe(false)
expect(isCdcNumber(47809425348791 as unknown as string)).toBe(false)
expect(isCdcNumber(undefined as unknown as string)).toBe(false)
expect(isCdcNumber('AB123456789012345')).toBe(false)
expect(isCdcNumber('AB1234567890123')).toBe(false)
})

it('should return true if the input is correct', () => {
expect(isCitizenDigitalCertificateNumber('AB12345678901234')).toBe(true)
expect(isCitizenDigitalCertificateNumber('RP47809425348791')).toBe(true)
expect(isCdcNumber('AB12345678901234')).toBe(true)
expect(isCdcNumber('RP47809425348791')).toBe(true)
})

it('should return false if the input is incorrect', () => {
expect(isCitizenDigitalCertificateNumber('ab12345678901234')).toBe(false)
expect(isCitizenDigitalCertificateNumber('A112345678901234')).toBe(false)
expect(isCitizenDigitalCertificateNumber('9B12345678901234')).toBe(false)
expect(isCitizenDigitalCertificateNumber('AA123456789012J4')).toBe(false)
expect(isCdcNumber('ab12345678901234')).toBe(false)
expect(isCdcNumber('A112345678901234')).toBe(false)
expect(isCdcNumber('9B12345678901234')).toBe(false)
expect(isCdcNumber('AA123456789012J4')).toBe(false)
})
})
12 changes: 6 additions & 6 deletions src/citizen-digital-certificate-number.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
/**
* Verify the input is a valid citizen digital certificate number (自然人憑證)
* Verify the input is a valid Citizen Digital Certificate Number (自然人憑證)
*
* @param { string } input - citizen digital certificate number
* @returns { boolean } is `input` a valid citizen digital certificate number
* @param { string } input - Citizen Digital Certificate Number
* @returns { boolean } is `input` a valid Citizen Digital Certificate Number
* @example
* isCitizenDigitalCertificateNumber('AB12345678901234') // true
* isCitizenDigitalCertificateNumber('A12345678901234') // false
* isCdcNumber('AB12345678901234') // true
* isCdcNumber('A12345678901234') // false
*/
export function isCitizenDigitalCertificateNumber(input: string): boolean {
export function isCdcNumber(input: string): boolean {
if (typeof input !== 'string') return false

const n = input.toString()
Expand Down
2 changes: 1 addition & 1 deletion src/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
export { isCitizenDigitalCertificateNumber } from './citizen-digital-certificate-number'
export { isCdcNumber } from './citizen-digital-certificate-number'
export { isEInvoiceCellPhoneBarcode } from './e-invoice-cell-phone-barcode'
export { isEInvoiceDonateCode } from './e-invoice-donate-code'
export { isBan } from './business-administration-number'
Expand Down

0 comments on commit 4d52b36

Please sign in to comment.