import { RecordItem, IRecordItem } from './RecordItem'; import { IField } from './Field'; describe('RecordItem', () => { const recordItem: IRecordItem = { id: 'TestID', type: 'new_case', displayName: 'Case', fields: { Contact: { DevName: 'Contact', DisplayName: 'Contact', Value: 'John Smith' }, Phone: { DevName: 'HomePhone', DisplayName: 'Home Phone', Value: '555-555-5555' } } }; test('Constructor(no fields)', () => { const record = new RecordItem(recordItem.id, recordItem.type, recordItem.displayName); expect(record.getMetadata()).toEqual({ Id: recordItem.id, Type: recordItem.type, DisplayName: recordItem.displayName }); expect(record.toJSON()).toEqual({ id: recordItem.id, type: recordItem.type, displayName: recordItem.displayName, fields: {} }); record.setPhone(recordItem.fields.Phone.DevName, recordItem.fields.Phone.DisplayName, recordItem.fields.Phone.Value); expect(record.getPhone()).toEqual(recordItem.fields.Phone); record.setField('Contact', 'Contact', 'Contact', 'John Smith'); expect(record.getField('Contact')).toEqual(recordItem.fields.Contact); expect(record.toJSON()).toEqual(recordItem); }); test('Constructor(with fields)', () => { const record = new RecordItem(recordItem.id, recordItem.type, recordItem.displayName, recordItem.fields); expect(record.getMetadata()).toEqual({ Id: recordItem.id, Type: recordItem.type, DisplayName: recordItem.displayName }); expect(record.getPhone()).toEqual(recordItem.fields.Phone); expect(record.getField('Contact')).toEqual(recordItem.fields.Contact); expect(record.toJSON()).toEqual(recordItem); }); test('fromJSON', () => { const record = RecordItem.fromJSON(recordItem); expect(record.getMetadata()).toEqual({ Id: recordItem.id, Type: recordItem.type, DisplayName: recordItem.displayName }); expect(record.getPhone()).toEqual(recordItem.fields.Phone); expect(record.getField('Contact')).toEqual(recordItem.fields.Contact); expect(record.toJSON()).toEqual(recordItem); }); });