diff --git a/plugins/pagerduty/src/api/client.ts b/plugins/pagerduty/src/api/client.ts index ac5afdae79..bf6835ec2a 100644 --- a/plugins/pagerduty/src/api/client.ts +++ b/plugins/pagerduty/src/api/client.ts @@ -97,15 +97,15 @@ export class PagerDutyClient implements PagerDutyApi { return await this.getByUrl(url); } - async getChangeEventsByServiceId(serviceId: string): Promise { + async getChangeEventsByServiceId( + serviceId: string, + ): Promise { const params = `limit=5&time_zone=UTC&sort_by=timestamp`; const url = `${await this.config.discoveryApi.getBaseUrl( 'proxy', )}/pagerduty/services/${serviceId}/change_events?${params}`; - const { change_events } = await this.getByUrl(url); - - return change_events; + return await this.getByUrl(url); } async getOnCallByPolicyId(policyId: string): Promise { diff --git a/plugins/pagerduty/src/api/types.ts b/plugins/pagerduty/src/api/types.ts index 9ecd233bab..8914c4ed97 100644 --- a/plugins/pagerduty/src/api/types.ts +++ b/plugins/pagerduty/src/api/types.ts @@ -44,7 +44,7 @@ export interface PagerDutyApi { * Fetches a list of change events a provided service has. * */ - getChangeEventsByServiceId(serviceId: string): Promise; + getChangeEventsByServiceId(serviceId: string): Promise; /** * Fetches the list of users in an escalation policy. diff --git a/plugins/pagerduty/src/components/ChangeEvents/ChangeEvents.test.tsx b/plugins/pagerduty/src/components/ChangeEvents/ChangeEvents.test.tsx index fca2422198..017e394de0 100644 --- a/plugins/pagerduty/src/components/ChangeEvents/ChangeEvents.test.tsx +++ b/plugins/pagerduty/src/components/ChangeEvents/ChangeEvents.test.tsx @@ -30,7 +30,7 @@ describe('Incidents', () => { it('Renders an empty state when there are no change events', async () => { mockPagerDutyApi.getChangeEventsByServiceId = jest .fn() - .mockImplementationOnce(async () => []); + .mockImplementationOnce(async () => ({ change_events: [] })); const { getByText, queryByTestId } = render( wrapInTestApp( @@ -46,37 +46,36 @@ describe('Incidents', () => { it('Renders all change events', async () => { mockPagerDutyApi.getChangeEventsByServiceId = jest .fn() - .mockImplementationOnce( - async () => - [ - { - id: 'id1', - source: 'changeSource1', - html_url: 'www.pdlink.com', - links: [ - { - href: 'www.externalLink1.com', - text: 'link1', - }, - ], - summary: 'summary of event', - timestamp: '2020-07-17T08:42:58.315+0000', - }, - { - id: 'id2', - source: 'changeSource1', - html_url: 'www.pdlink.com/link', - links: [ - { - href: 'www.externalLink1.com', - text: 'link1', - }, - ], - summary: 'sum of EVENT', - timestamp: '2020-07-18T08:42:58.315+0000', - }, - ] as ChangeEvent[], - ); + .mockImplementationOnce(async () => ({ + change_events: [ + { + id: 'id1', + source: 'changeSource1', + html_url: 'www.pdlink.com', + links: [ + { + href: 'www.externalLink1.com', + text: 'link1', + }, + ], + summary: 'summary of event', + timestamp: '2020-07-17T08:42:58.315+0000', + }, + { + id: 'id2', + source: 'changeSource1', + html_url: 'www.pdlink.com/link', + links: [ + { + href: 'www.externalLink1.com', + text: 'link1', + }, + ], + summary: 'sum of EVENT', + timestamp: '2020-07-18T08:42:58.315+0000', + }, + ] as ChangeEvent[], + })); const { getByText, getAllByTitle, queryByTestId } = render( wrapInTestApp( @@ -95,36 +94,35 @@ describe('Incidents', () => { it('Does not render a pagerduty link when html_url is not present in response', async () => { mockPagerDutyApi.getChangeEventsByServiceId = jest .fn() - .mockImplementationOnce( - async () => - [ - { - id: 'id1', - source: 'changeSource1', - links: [ - { - href: 'www.externalLink1.com', - text: 'link1', - }, - ], - summary: 'summary of event', - timestamp: '2020-07-17T08:42:58.315+0000', - }, - { - id: 'id2', - source: 'changeSource1', - html_url: 'www.pdlink.com/link', - links: [ - { - href: 'www.externalLink1.com', - text: 'link1', - }, - ], - summary: 'sum of EVENT', - timestamp: '2020-07-18T08:42:58.315+0000', - }, - ] as ChangeEvent[], - ); + .mockImplementationOnce(async () => ({ + change_events: [ + { + id: 'id1', + source: 'changeSource1', + links: [ + { + href: 'www.externalLink1.com', + text: 'link1', + }, + ], + summary: 'summary of event', + timestamp: '2020-07-17T08:42:58.315+0000', + }, + { + id: 'id2', + source: 'changeSource1', + html_url: 'www.pdlink.com/link', + links: [ + { + href: 'www.externalLink1.com', + text: 'link1', + }, + ], + summary: 'sum of EVENT', + timestamp: '2020-07-18T08:42:58.315+0000', + }, + ] as ChangeEvent[], + })); const { getByText, getAllByTitle, queryByTestId } = render( wrapInTestApp( diff --git a/plugins/pagerduty/src/components/ChangeEvents/ChangeEvents.tsx b/plugins/pagerduty/src/components/ChangeEvents/ChangeEvents.tsx index 58b4dd6acf..4b19257cdc 100644 --- a/plugins/pagerduty/src/components/ChangeEvents/ChangeEvents.tsx +++ b/plugins/pagerduty/src/components/ChangeEvents/ChangeEvents.tsx @@ -33,7 +33,10 @@ export const ChangeEvents = ({ serviceId, refreshEvents }: Props) => { const api = useApi(pagerDutyApiRef); const [{ value: changeEvents, loading, error }, getChangeEvents] = useAsyncFn( - async () => await api.getChangeEventsByServiceId(serviceId), + async () => { + const { change_events } = await api.getChangeEventsByServiceId(serviceId); + return change_events; + }, ); useEffect(() => {