Skip to content

Commit

Permalink
Merge remote-tracking branch 'oatkiller/data-access-layer-interface-c…
Browse files Browse the repository at this point in the history
…hange' into resolver/add-events-to-dal
  • Loading branch information
Brent Kimmel committed Sep 24, 2020
2 parents 25fb54a + 03ede0e commit 6779aa9
Show file tree
Hide file tree
Showing 5 changed files with 93 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ export function emptifyMock<T>(
return {
metadata,
dataAccessLayer: {
...dataAccessLayer,
/**
* Fetch related events for an entity ID
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

import {
ResolverRelatedEvents,
SafeResolverEvent,
ResolverTree,
ResolverEntityIndex,
} from '../../../../common/endpoint/types';
Expand Down Expand Up @@ -58,6 +59,29 @@ export function noAncestorsTwoChildren(): { dataAccessLayer: DataAccessLayer; me
});
},

/**
* Return events that have `process.entity_id` that includes `entityID` and that have
* a `event.category` that includes `category`.
*/
async eventsWithEntityIDAndCategory(
_entityID: string,
_category: string,
_after: string
): Promise<{
events: SafeResolverEvent[];
nextEvent: string | null;
}> {
const events: SafeResolverEvent[] = [];
return {
events,
nextEvent: null,
};
},

async event(_eventID: string): Promise<SafeResolverEvent | null> {
return null;
},

/**
* Fetch a ResolverTree for a entityID
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import {
ResolverRelatedEvents,
ResolverTree,
ResolverEntityIndex,
SafeResolverEvent,
} from '../../../../common/endpoint/types';
import { mockEndpointEvent } from '../../mocks/endpoint_event';
import { mockTreeWithNoAncestorsAnd2Children } from '../../mocks/resolver_tree';
Expand Down Expand Up @@ -69,6 +70,32 @@ export function noAncestorsTwoChildenInIndexCalledAwesomeIndex(): {
});
},

async eventsWithEntityIDAndCategory(
entityID: string,
category,
_after: string
): Promise<{
events: SafeResolverEvent[];
nextEvent: string | null;
}> {
return {
events: [
mockEndpointEvent({
entityID,
eventCategory: category,
}),
],
nextEvent: null,
};
},

async event(eventID: string): Promise<SafeResolverEvent | null> {
return mockEndpointEvent({
entityID: metadata.entityIDs.origin,
eventID,
});
},

/**
* Fetch a ResolverTree for a entityID
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@ import {
ResolverRelatedEvents,
ResolverTree,
ResolverEntityIndex,
SafeResolverEvent,
} from '../../../../common/endpoint/types';
import * as eventModel from '../../../../common/endpoint/models/event';

interface Metadata {
/**
Expand Down Expand Up @@ -56,31 +58,62 @@ export function noAncestorsTwoChildrenWithRelatedEventsOnOrigin(): {
/**
* Fetch related events for an entity ID
*/
relatedEvents(entityID: string): Promise<ResolverRelatedEvents> {
async relatedEvents(entityID: string): Promise<ResolverRelatedEvents> {
/**
* Respond with the mocked related events when the origin's related events are fetched.
**/
const events = entityID === metadata.entityIDs.origin ? tree.relatedEvents.events : [];

return Promise.resolve({
return {
entityID,
events,
nextEvent: null,
});
};
},

/**
* Any of the origin's related events by category.
* `entityID` must match the origin node's `process.entity_id`.
* Does not respect the `_after` parameter.
*/
async eventsWithEntityIDAndCategory(
entityID: string,
category: string,
_after: string
): Promise<{ events: SafeResolverEvent[]; nextEvent: string | null }> {
const events =
entityID === metadata.entityIDs.origin
? tree.relatedEvents.events.filter((event) =>
eventModel.eventCategory(event).includes(category)
)
: [];
return {
events,
nextEvent: null,
};
},

/**
* Any of the origin's related events by event.id
*/
async event(eventID: string): Promise<SafeResolverEvent | null> {
return (
tree.relatedEvents.events.find((event) => eventModel.eventID(event) === eventID) ?? null
);
},

/**
* Fetch a ResolverTree for a entityID
*/
resolverTree(): Promise<ResolverTree> {
return Promise.resolve(tree);
async resolverTree(): Promise<ResolverTree> {
return tree;
},

/**
* Get entities matching a document.
*/
entities(): Promise<ResolverEntityIndex> {
return Promise.resolve([{ entity_id: metadata.entityIDs.origin }]);
async entities(): Promise<ResolverEntityIndex> {
return [{ entity_id: metadata.entityIDs.origin }];
},
},
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ export function pausifyMock<T>({
}
},
dataAccessLayer: {
...dataAccessLayer,
/**
* Fetch related events for an entity ID
*/
Expand Down

0 comments on commit 6779aa9

Please sign in to comment.