RFC3966.test.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import { parseRFC3966, formatRFC3966 } from './RFC3966.js'
  2. describe('RFC3966', () => {
  3. it('should format', () => {
  4. expect(() => formatRFC3966({ number: '123' })).to.throw('expects "number" to be in E.164 format')
  5. formatRFC3966({}).should.equal('')
  6. formatRFC3966({ number: '+78005553535' }).should.equal('tel:+78005553535')
  7. formatRFC3966({ number: '+78005553535', ext: '123' }).should.equal('tel:+78005553535;ext=123')
  8. })
  9. it('should parse', () => {
  10. parseRFC3966('tel:+78005553535').should.deep.equal({
  11. number : '+78005553535'
  12. })
  13. parseRFC3966('tel:+78005553535;ext=123').should.deep.equal({
  14. number : '+78005553535',
  15. ext : '123'
  16. })
  17. // With `phone-context`
  18. parseRFC3966('tel:8005553535;ext=123;phone-context=+7').should.deep.equal({
  19. number : '+78005553535',
  20. ext : '123'
  21. })
  22. // "Domain contexts" are ignored
  23. parseRFC3966('tel:8005553535;ext=123;phone-context=www.leningrad.spb.ru').should.deep.equal({
  24. number : '8005553535',
  25. ext : '123'
  26. })
  27. // Not a viable phone number.
  28. parseRFC3966('tel:3').should.deep.equal({})
  29. })
  30. })