diff --git a/src/read-models/shared-state/get-equipment.ts b/src/read-models/shared-state/get-equipment.ts index 197b59d..2cd87ad 100644 --- a/src/read-models/shared-state/get-equipment.ts +++ b/src/read-models/shared-state/get-equipment.ts @@ -29,6 +29,7 @@ export const getEquipment = ...result.members, trainedOn: [], agreementSigned: O.none, + ownerOf: [], })) ); @@ -46,6 +47,7 @@ export const getEquipment = RA.map(result => ({ ...result.members, trainedOn: [], + ownerOf: [], })) ); diff --git a/src/read-models/shared-state/get-member.ts b/src/read-models/shared-state/get-member.ts index 671ab5f..6443dd1 100644 --- a/src/read-models/shared-state/get-member.ts +++ b/src/read-models/shared-state/get-member.ts @@ -37,6 +37,7 @@ export const getMember = .where(eq(membersTable.memberNumber, memberNumber)) .get(), O.fromNullable, - O.let('trainedOn', () => getTrainedOn) + O.let('trainedOn', () => getTrainedOn), + O.let('ownerOf', () => []) ); }; diff --git a/src/read-models/shared-state/return-types.ts b/src/read-models/shared-state/return-types.ts index fd69a69..b2cf364 100644 --- a/src/read-models/shared-state/return-types.ts +++ b/src/read-models/shared-state/return-types.ts @@ -14,8 +14,14 @@ type TrainedOn = { trainedAt: Date; }; +type OwnerOf = { + id: string; + name: string; +}; + export type Member = { trainedOn: ReadonlyArray; + ownerOf: ReadonlyArray; memberNumber: number; emailAddress: EmailAddress; prevEmails: ReadonlyArray; diff --git a/tests/read-models/shared-state/get-member.test.ts b/tests/read-models/shared-state/get-member.test.ts index 1f73fe0..ffad71c 100644 --- a/tests/read-models/shared-state/get-member.test.ts +++ b/tests/read-models/shared-state/get-member.test.ts @@ -217,7 +217,25 @@ describe('get-via-shared-read-model', () => { }); describe('and they are an owner of an area', () => { - it.todo('returns the area name and id'); + const createArea = { + name: faker.company.buzzNoun() as NonEmptyString, + id: faker.string.uuid() as UUID, + }; + beforeEach(async () => { + await framework.commands.area.create(createArea); + await framework.commands.area.addOwner({ + memberNumber: memberNumber, + areaId: createArea.id, + }); + }); + + it.failing('returns the area name and id', () => { + const result = runQuery(); + expect(result.ownerOf).toHaveLength(1); + expect(result.ownerOf[0].id).toStrictEqual(createArea.id); + expect(result.ownerOf[0].name).toStrictEqual(createArea.name); + }); + it.todo('returns when they became an owner'); }); });