From 537919f895d5690b76c6ae1b84dcad082a829846 Mon Sep 17 00:00:00 2001 From: "Michael J. Roberts" Date: Fri, 28 Apr 2023 16:49:30 +0100 Subject: [PATCH] feat: Added client.monitor.getStatus() route handler. feat: Added client.monitor.getStatus() route handler. Includes associated test suite for module export definition and expected output from API route. --- src/routes/monitor.ts | 12 ++++++++++++ tests/mocks/monitor.ts | 10 ++++++++++ tests/monitorRoutes.spec.ts | 8 ++++++++ 3 files changed, 30 insertions(+) diff --git a/src/routes/monitor.ts b/src/routes/monitor.ts index 946a4f9..c96ae3d 100644 --- a/src/routes/monitor.ts +++ b/src/routes/monitor.ts @@ -37,5 +37,17 @@ export const monitor = ( const url = new URL('monitor/safe', base) return dispatchRequest(url, init, headers) } + }, + { + name: 'getStatus', + action: < + T = { + connected: boolean + safe: boolean + } + >() => { + const url = new URL('monitor/status', base) + return dispatchRequest(url, init, headers) + } } ] as const diff --git a/tests/mocks/monitor.ts b/tests/mocks/monitor.ts index 2baaac0..15b1eb6 100644 --- a/tests/mocks/monitor.ts +++ b/tests/mocks/monitor.ts @@ -30,5 +30,15 @@ export const monitorHandlers: Handler[] = [ safe: true } }) + }, + { + method: 'GET', + url: '/api/v1/monitor/status', + handler: eventHandler(_event => { + return { + connected: true, + safe: true + } + }) } ] diff --git a/tests/monitorRoutes.spec.ts b/tests/monitorRoutes.spec.ts index 45bb9a1..2e7d138 100644 --- a/tests/monitorRoutes.spec.ts +++ b/tests/monitorRoutes.spec.ts @@ -33,5 +33,13 @@ suite('@observerly/hyper Fiber API Monitor Client', () => { if (!isDataResult(isSafe)) return expect(isSafe).toStrictEqual({ safe: true }) }) + + it('should be able to determine the status of the monitor', async () => { + const client = setupClient(getURL('/api/v1/')) + const status = await client.monitor.getStatus() + expect(isDataResult(status)).toBe(true) + if (!isDataResult(status)) return + expect(status).toStrictEqual({ connected: true, safe: true }) + }) }) })