Mailspring/app/spec/models/event-spec.es6

94 lines
2.6 KiB
Text
Raw Normal View History

const Event = require('../../src/flux/models/event').default;
const json_event = {
__cls: 'Event',
id: '4ee4xbnx7pxdb9g7c2f8ncyto',
calendar_id: 'ci0k1wfyv533ccgox4t7uri4h',
account_id: '14e5bn96uizyuhidhcw5rfrb0',
description: null,
location: null,
participants: [
{
email: 'example@gmail.com',
name: 'Ben Bitdiddle',
status: 'yes',
},
],
read_only: false,
title: 'Meeting with Ben Bitdiddle',
when: {
object: 'timespan',
end_time: 1408123800,
start_time: 1408120200,
},
busy: true,
status: 'confirmed',
};
const when_1 = {
end_time: 1408123800,
start_time: 1408120200,
};
const participant_1 = {
name: 'Ethan Blackburn',
status: 'yes',
email: 'ethan@nylas.com',
};
const participant_2 = {
name: 'Other Person',
status: 'maybe',
email: 'other@person.com',
};
const participant_3 = {
name: 'Another Person',
status: 'no',
email: 'another@person.com',
};
const event_1 = {
title: 'Dolores',
description: 'Hanging at the park',
location: 'Dolores Park',
when: when_1,
start: 1408120200,
end: 1408123800,
participants: [participant_1, participant_2, participant_3],
};
describe('Event', function() {
it('can be built via the constructor', function() {
const e1 = new Event(event_1);
expect(e1.title).toBe('Dolores');
expect(e1.description).toBe('Hanging at the park');
expect(e1.location).toBe('Dolores Park');
expect(e1.when.start_time).toBe(1408120200);
expect(e1.when.end_time).toBe(1408123800);
expect(e1.start).toBe(1408120200);
expect(e1.end).toBe(1408123800);
expect(e1.participants[0].name).toBe('Ethan Blackburn');
expect(e1.participants[0].email).toBe('ethan@nylas.com');
expect(e1.participants[0].status).toBe('yes');
expect(e1.participants[1].name).toBe('Other Person');
expect(e1.participants[1].email).toBe('other@person.com');
expect(e1.participants[1].status).toBe('maybe');
expect(e1.participants[2].name).toBe('Another Person');
expect(e1.participants[2].email).toBe('another@person.com');
expect(e1.participants[2].status).toBe('no');
});
it('accepts a JSON response', function() {
const e1 = new Event().fromJSON(json_event);
expect(e1.title).toBe('Meeting with Ben Bitdiddle');
expect(e1.description).toBe(null);
expect(e1.location).toBe(null);
expect(e1.start).toBe(1408120200);
expect(e1.end).toBe(1408123800);
expect(e1.participants[0].name).toBe('Ben Bitdiddle');
expect(e1.participants[0].email).toBe('example@gmail.com');
expect(e1.participants[0].status).toBe('yes');
});
});