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 }) + }) }) })