diff options
Diffstat (limited to 'tests/javascript/models/contact.test.js')
-rw-r--r-- | tests/javascript/models/contact.test.js | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/tests/javascript/models/contact.test.js b/tests/javascript/models/contact.test.js new file mode 100644 index 00000000..3a313b11 --- /dev/null +++ b/tests/javascript/models/contact.test.js @@ -0,0 +1,62 @@ +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() + }) + +}) |