import Contact from '../../../src/models/contact' import { Property } from 'ical.js' const getPropertyLines = (property, vcard) => { return vcard.match(new RegExp(`^${property}[;:].*`, 'gmi')) } describe('Test stripping quotes from TYPE', () => { let contact let property beforeEach(() => { contact = new Contact(` BEGIN:VCARD VERSION:3.0 UID:123456789-123465-123456-123456789 FN:Test contact END:VCARD`.replace(/\t/gmi, '') ) property = contact.vCard.addPropertyWithValue('TEl', '+00 123 456 789') }) test('Test stripping quotes from SINGLE TYPE', (done) => { property.setParameter('type', ['VOICE']) const line = getPropertyLines('TEL', contact.toStringStripQuotes())[0] expect(line).toStrictEqual('TEL;TYPE=VOICE:+00 123 456 789') done() }) test('Test stripping quotes from MULTIPLE TYPES', (done) => { property.setParameter('type', ['WORK', 'VOICE']) const line = getPropertyLines('TEL', contact.toStringStripQuotes())[0] expect(line).toStrictEqual('TEL;TYPE=WORK,VOICE:+00 123 456 789') done() }) test('Test stripping quotes from MULTIPLE SPLIT TYPES', (done) => { property.setParameter('type', ['WORK,VOICE']) const line = getPropertyLines('TEL', contact.toStringStripQuotes())[0] expect(line).toStrictEqual('TEL;TYPE=WORK,VOICE:+00 123 456 789') done() }) test('Test stripping quotes from MULTIPLE SPLIT TYPES and MULTIPLE PROPERTIES', (done) => { const property2 = contact.vCard.addPropertyWithValue('TEl', '+99 876 543 210') property.setParameter('type', ['WORK,VOICE']) property2.setParameter('type', ['HOME']) const lines = getPropertyLines('TEL', contact.toStringStripQuotes()) expect(lines).toStrictEqual([ 'TEL;TYPE=WORK,VOICE:+00 123 456 789', 'TEL;TYPE=HOME:+99 876 543 210', ]) done() }) })