diff --git a/src/models/attendee.test.ts b/src/models/attendee.test.ts index 2574075..521fb0b 100644 --- a/src/models/attendee.test.ts +++ b/src/models/attendee.test.ts @@ -22,3 +22,22 @@ it('can set answers when providing multiple answers', async () => { }) ); }); + +it('can set location detail parameters and maintain existing attributes', async () => { + const attendee = new Attendee; + const details = { + address: '123 Fake St', + city: 'Fake City', + country: 'FC', + postcode: 'X0X 0X0', + region: 'FR', + timezone: 'UTC', + }; + + expect(attendee.located(details).getAttributes()).toEqual( + expect.objectContaining({ + ...attendee.getAttributes(), + ...details + }) + ); +}); diff --git a/src/models/attendee.ts b/src/models/attendee.ts index dddfdbd..c0c21b2 100644 --- a/src/models/attendee.ts +++ b/src/models/attendee.ts @@ -22,6 +22,8 @@ export default class Attendee extends Model implements AttendeeModel { } public located(details: LocationDetailParameters): this { + this.attributes = {...this.attributes, ...details}; + return this; }