From ab95ed35cc0410a4d38611d712990d2359993068 Mon Sep 17 00:00:00 2001 From: nicomiguelino Date: Thu, 30 Apr 2026 20:01:47 -0700 Subject: [PATCH 1/4] fix(grafana): show descriptive error when dashboard image fails to load - Change fetchAndRenderDashboard return type from boolean to FetchResult discriminated union - Include HTTP status code and status text in the error message - Note that Screenly Anywhere and the Grafana Image Renderer plugin are required - Add tests for fetchAndRenderDashboard success, HTTP error, and network error paths - Flatten top-level describe blocks to stay within max-lines-per-function lint limit --- edge-apps/grafana/src/main.test.ts | 185 +++++++++++++++++++---------- edge-apps/grafana/src/main.ts | 9 +- edge-apps/grafana/src/render.ts | 22 +++- 3 files changed, 147 insertions(+), 69 deletions(-) diff --git a/edge-apps/grafana/src/main.test.ts b/edge-apps/grafana/src/main.test.ts index f489e0269..46ad5ecb1 100644 --- a/edge-apps/grafana/src/main.test.ts +++ b/edge-apps/grafana/src/main.test.ts @@ -1,5 +1,5 @@ -import { describe, test, expect, beforeEach, afterEach } from 'bun:test' -import { getRenderUrl } from './render' +import { describe, test, expect, beforeEach, afterEach, mock } from 'bun:test' +import { getRenderUrl, fetchAndRenderDashboard } from './render' import type { ScreenlyObject } from '@screenly/edge-apps' // Mock screenly object @@ -22,79 +22,144 @@ Object.assign(globalThis.window, { innerHeight: 567, }) -describe('Grafana App', () => { - describe('getRenderUrl', () => { - let originalScreenWidth: number - let originalScreenHeight: number +describe('getRenderUrl', () => { + let originalScreenWidth: number + let originalScreenHeight: number - beforeEach(() => { - originalScreenWidth = globalThis.window.innerWidth - originalScreenHeight = globalThis.window.innerHeight - }) + beforeEach(() => { + originalScreenWidth = globalThis.window.innerWidth + originalScreenHeight = globalThis.window.innerHeight + }) + + afterEach(() => { + globalThis.window.innerWidth = originalScreenWidth + globalThis.window.innerHeight = originalScreenHeight + }) + + test('should construct URL with correct parameters', () => { + globalThis.window.innerWidth = 1234 + globalThis.window.innerHeight = 567 + + const url = getRenderUrl('https://grafana.example.com', 'abc123') + + expect(url).toContain( + 'https://cors-proxy.example.com/https://grafana.example.com/render/d/abc123', + ) + expect(url).toContain('width=1234') + expect(url).toContain('height=567') + expect(url).toContain('kiosk=true') + }) + + test('should use dynamic window dimensions', () => { + globalThis.window.innerWidth = 3840 + globalThis.window.innerHeight = 2160 + + const url = getRenderUrl('grafana.example.com', 'xyz789') + + expect(url).toContain('width=3840') + expect(url).toContain('height=2160') + }) - afterEach(() => { - globalThis.window.innerWidth = originalScreenWidth - globalThis.window.innerHeight = originalScreenHeight - }) + test('should include all required query parameters', () => { + const url = getRenderUrl('my-grafana.net', 'dash1') - test('should construct URL with correct parameters', () => { - globalThis.window.innerWidth = 1234 - globalThis.window.innerHeight = 567 + const params = new URLSearchParams(url.split('?')[1]) + expect(params.has('width')).toBe(true) + expect(params.has('height')).toBe(true) + expect(params.get('kiosk')).toBe('true') + }) - const url = getRenderUrl('https://grafana.example.com', 'abc123') + test('should include CORS proxy URL', () => { + const url = getRenderUrl('my-grafana.net', 'dash1') - expect(url).toContain( - 'https://cors-proxy.example.com/https://grafana.example.com/render/d/abc123', - ) - expect(url).toContain('width=1234') - expect(url).toContain('height=567') - expect(url).toContain('kiosk=true') - }) + expect(url).toContain('https://cors-proxy.example.com') + }) - test('should use dynamic window dimensions', () => { - globalThis.window.innerWidth = 3840 - globalThis.window.innerHeight = 2160 + test('should include domain in render path', () => { + const url = getRenderUrl('custom.grafana.net', 'dash-id') - const url = getRenderUrl('grafana.example.com', 'xyz789') + expect(url).toContain('custom.grafana.net') + expect(url).toContain('dash-id') + }) +}) - expect(url).toContain('width=3840') - expect(url).toContain('height=2160') - }) +describe('fetchAndRenderDashboard', () => { + const imgElement = { + setAttribute: mock(() => {}), + } as unknown as HTMLImageElement - test('should include all required query parameters', () => { - const url = getRenderUrl('my-grafana.net', 'dash1') + beforeEach(() => { + ;(imgElement.setAttribute as ReturnType).mockClear() + }) - const params = new URLSearchParams(url.split('?')[1]) - expect(params.has('width')).toBe(true) - expect(params.has('height')).toBe(true) - expect(params.get('kiosk')).toBe('true') - }) + test('should return success when fetch succeeds', async () => { + globalThis.fetch = mock(async () => ({ + ok: true, + blob: async () => new Blob(['data'], { type: 'image/png' }), + })) as unknown as typeof fetch - test('should include CORS proxy URL', () => { - const url = getRenderUrl('my-grafana.net', 'dash1') + globalThis.URL.createObjectURL = mock(() => 'blob:fake-url') - expect(url).toContain('https://cors-proxy.example.com') - }) + const result = await fetchAndRenderDashboard( + 'https://example.com/render', + 'token123', + imgElement, + ) - test('should include domain in render path', () => { - const url = getRenderUrl('custom.grafana.net', 'dash-id') + expect(result.success).toBe(true) + expect(imgElement.setAttribute).toHaveBeenCalledWith('src', 'blob:fake-url') + }) + + test('should return failure with HTTP status when response is not ok', async () => { + globalThis.fetch = mock(async () => ({ + ok: false, + status: 401, + statusText: 'Unauthorized', + })) as unknown as typeof fetch + + const result = await fetchAndRenderDashboard( + 'https://example.com/render', + 'bad-token', + imgElement, + ) + + expect(result.success).toBe(false) + if (!result.success) { + expect(result.status).toBe(401) + expect(result.statusText).toBe('Unauthorized') + expect(result.message).toContain('401') + } + }) + + test('should return failure with error message on network error', async () => { + globalThis.fetch = mock(() => + Promise.reject(new Error('Network request failed')), + ) as unknown as typeof fetch + + const result = await fetchAndRenderDashboard( + 'https://example.com/render', + 'token123', + imgElement, + ) + + expect(result.success).toBe(false) + if (!result.success) { + expect(result.message).toBe('Network request failed') + expect(result.status).toBeUndefined() + } + }) +}) - expect(url).toContain('custom.grafana.net') - expect(url).toContain('dash-id') - }) +describe('Configuration validation', () => { + test('refresh interval should be numeric and positive', () => { + const refreshInterval = 60 + expect(typeof refreshInterval).toBe('number') + expect(refreshInterval).toBeGreaterThan(0) }) - describe('Configuration validation', () => { - test('refresh interval should be numeric and positive', () => { - const refreshInterval = 60 - expect(typeof refreshInterval).toBe('number') - expect(refreshInterval).toBeGreaterThan(0) - }) - - test('service access token should be a string', () => { - const serviceAccessToken = 'glsa_xxxxxxxxxxxx' - expect(typeof serviceAccessToken).toBe('string') - expect(serviceAccessToken.length).toBeGreaterThan(0) - }) + test('service access token should be a string', () => { + const serviceAccessToken = 'glsa_xxxxxxxxxxxx' + expect(typeof serviceAccessToken).toBe('string') + expect(serviceAccessToken.length).toBeGreaterThan(0) }) }) diff --git a/edge-apps/grafana/src/main.ts b/edge-apps/grafana/src/main.ts index bc1aa6aef..f3c3eebb3 100644 --- a/edge-apps/grafana/src/main.ts +++ b/edge-apps/grafana/src/main.ts @@ -38,14 +38,17 @@ window.onload = async function () { const imgElement = document.querySelector('#content img') as HTMLImageElement // Fetch dashboard immediately - const success = await fetchAndRenderDashboard( + const result = await fetchAndRenderDashboard( imageUrl, serviceAccessToken, imgElement, ) - if (!success) { - throw new Error('Failed to load the Grafana dashboard image.') + if (!result.success) { + throw new Error( + `Failed to load the Grafana dashboard image (${result.message}). ` + + 'This app requires the Grafana Image Renderer plugin and is not supported on Screenly Anywhere.', + ) } // Set up interval to refresh the dashboard diff --git a/edge-apps/grafana/src/render.ts b/edge-apps/grafana/src/render.ts index f62b1e203..9cf385145 100644 --- a/edge-apps/grafana/src/render.ts +++ b/edge-apps/grafana/src/render.ts @@ -1,3 +1,7 @@ +export type FetchResult = + | { success: true } + | { success: false; status?: number; statusText?: string; message: string } + export function getRenderUrl(domain: string, dashboardId: string): string { const renderUrl = `${screenly.cors_proxy_url}/${domain}/render/d/${dashboardId}` const width = window.innerWidth || 1920 @@ -15,7 +19,7 @@ export async function fetchAndRenderDashboard( imageUrl: string, serviceAccessToken: string, imgElement: HTMLImageElement, -): Promise { +): Promise { try { const response = await fetch(imageUrl, { method: 'GET', @@ -26,20 +30,26 @@ export async function fetchAndRenderDashboard( }) if (!response.ok) { + const message = `HTTP ${response.status} ${response.statusText}` console.error( - `Failed to fetch dashboard image from ${imageUrl}: ${response.status} ${response.statusText}`, + `Failed to fetch dashboard image from ${imageUrl}: ${message}`, ) - return false + return { + success: false, + status: response.status, + statusText: response.statusText, + message, + } } const blob = await response.blob() const objectUrl = URL.createObjectURL(blob) - // Render Grafana dashboard as an image imgElement.setAttribute('src', objectUrl) - return true + return { success: true } } catch (error) { + const message = error instanceof Error ? error.message : String(error) console.error('Error fetching dashboard image:', error) - return false + return { success: false, message } } } From 480032a4c7d2a55ee683e1c465d5522236ed3390 Mon Sep 17 00:00:00 2001 From: nicomiguelino Date: Thu, 30 Apr 2026 21:51:10 -0700 Subject: [PATCH 2/4] fix(grafana): add display-errors screenshots and clean up error message - Remove inaccurate plugin and Anywhere note from the error message - Add error overlay screenshots for 1920x1080 and 1080x1920 - Refactor e2e spec into a shared runScreenshotTest helper to eliminate duplication --- edge-apps/grafana/e2e/screenshots.spec.ts | 114 +++++++++++++----- .../screenshots/1080x1920-display-errors.webp | Bin 0 -> 23900 bytes .../screenshots/1920x1080-display-errors.webp | Bin 0 -> 31262 bytes edge-apps/grafana/src/main.ts | 3 +- 4 files changed, 82 insertions(+), 35 deletions(-) create mode 100644 edge-apps/grafana/screenshots/1080x1920-display-errors.webp create mode 100644 edge-apps/grafana/screenshots/1920x1080-display-errors.webp diff --git a/edge-apps/grafana/e2e/screenshots.spec.ts b/edge-apps/grafana/e2e/screenshots.spec.ts index 079aca530..5f049dbdf 100644 --- a/edge-apps/grafana/e2e/screenshots.spec.ts +++ b/edge-apps/grafana/e2e/screenshots.spec.ts @@ -1,4 +1,4 @@ -import { test } from '@playwright/test' +import { test, type Browser, type Route } from '@playwright/test' import { createMockScreenlyForScreenshots, getScreenshotsDir, @@ -22,49 +22,97 @@ const { screenlyJsContent } = createMockScreenlyForScreenshots( }, ) +const { screenlyJsContent: screenlyJsContentWithErrors } = + createMockScreenlyForScreenshots( + {}, + { + dashboard_id: DASHBOARD_ID, + refresh_interval: '3600', + display_errors: 'true', + screenly_oauth_tokens_url: 'http://127.0.0.1:8080/oauth/', + }, + ) + const dashboardImage = fs.readFileSync( path.resolve('e2e/fixtures/sample-grafana-dashboard.png'), ) -for (const { width, height } of RESOLUTIONS) { - test(`screenshot ${width}x${height}`, async ({ browser }) => { - const screenshotsDir = getScreenshotsDir() +const DISPLAY_ERRORS_RESOLUTIONS = [ + { width: 1920, height: 1080 }, + { width: 1080, height: 1920 }, +] - const context = await browser.newContext({ viewport: { width, height } }) - const page = await context.newPage() +async function runScreenshotTest( + browser: Browser, + width: number, + height: number, + screenlyContent: string, + filename: string, + mockRenderRoute: (route: Route) => Promise, +) { + const screenshotsDir = getScreenshotsDir() + const context = await browser.newContext({ viewport: { width, height } }) + const page = await context.newPage() - await setupClockMock(page) - await setupScreenlyJsMock(page, screenlyJsContent) + await setupClockMock(page) + await setupScreenlyJsMock(page, screenlyContent) - // Mock OAuth token endpoint - await page.route('**/oauth/access_token/', async (route) => { - await route.fulfill({ - status: 200, - contentType: 'application/json', - body: JSON.stringify({ - token: 'mock-service-access-token', - metadata: { domain: GRAFANA_DOMAIN }, - }), - }) + await page.route('**/oauth/access_token/', async (route) => { + await route.fulfill({ + status: 200, + contentType: 'application/json', + body: JSON.stringify({ + token: 'mock-service-access-token', + metadata: { domain: GRAFANA_DOMAIN }, + }), }) + }) - // Mock Grafana render endpoint - await page.route('**/render/d/**', async (route) => { - await route.fulfill({ - status: 200, - contentType: 'image/png', - body: dashboardImage, - }) - }) + await page.route('**/render/d/**', mockRenderRoute) - await page.goto('/') - await page.waitForLoadState('networkidle') + await page.goto('/') + await page.waitForLoadState('networkidle') - await page.screenshot({ - path: path.join(screenshotsDir, `${width}x${height}.png`), - fullPage: false, - }) + await page.screenshot({ + path: path.join(screenshotsDir, filename), + fullPage: false, + }) - await context.close() + await context.close() +} + +for (const { width, height } of RESOLUTIONS) { + test(`screenshot ${width}x${height}`, async ({ browser }) => { + await runScreenshotTest( + browser, + width, + height, + screenlyJsContent, + `${width}x${height}.png`, + async (route) => + route.fulfill({ + status: 200, + contentType: 'image/png', + body: dashboardImage, + }), + ) + }) +} + +for (const { width, height } of DISPLAY_ERRORS_RESOLUTIONS) { + test(`screenshot ${width}x${height} display-errors`, async ({ browser }) => { + await runScreenshotTest( + browser, + width, + height, + screenlyJsContentWithErrors, + `${width}x${height}-display-errors.png`, + async (route) => + route.fulfill({ + status: 403, + contentType: 'application/json', + body: JSON.stringify({ message: 'Forbidden' }), + }), + ) }) } diff --git a/edge-apps/grafana/screenshots/1080x1920-display-errors.webp b/edge-apps/grafana/screenshots/1080x1920-display-errors.webp new file mode 100644 index 0000000000000000000000000000000000000000..8b79fa9c004f9945c4937095be2d5067acb37250 GIT binary patch literal 23900 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 literal 0 HcmV?d00001 diff --git a/edge-apps/grafana/screenshots/1920x1080-display-errors.webp b/edge-apps/grafana/screenshots/1920x1080-display-errors.webp new file mode 100644 index 0000000000000000000000000000000000000000..09094a0efb597b6816ecff728bffdd9c19ca4ab2 GIT binary patch literal 31262 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 literal 0 HcmV?d00001 diff --git a/edge-apps/grafana/src/main.ts b/edge-apps/grafana/src/main.ts index f3c3eebb3..a5fdcdeaa 100644 --- a/edge-apps/grafana/src/main.ts +++ b/edge-apps/grafana/src/main.ts @@ -46,8 +46,7 @@ window.onload = async function () { if (!result.success) { throw new Error( - `Failed to load the Grafana dashboard image (${result.message}). ` + - 'This app requires the Grafana Image Renderer plugin and is not supported on Screenly Anywhere.', + `Failed to load the Grafana dashboard image (${result.message}).`, ) } From 51a4008c8c310dcf17581d4919ce9fae04c68e5e Mon Sep 17 00:00:00 2001 From: nicomiguelino Date: Thu, 30 Apr 2026 22:12:24 -0700 Subject: [PATCH 3/4] fix(grafana): fix blob URL memory leak and improve test isolation - Revoke the previous blob URL before replacing it on each dashboard refresh - Restore globalThis.fetch and URL globals in afterEach to prevent test-order dependencies - Extract RENDER_URL and TOKEN constants and mockSuccessfulFetch helper to remove duplication - Add test for blob URL revocation - Add eslint-disable comment for max-lines-per-function on fetchAndRenderDashboard suite --- edge-apps/grafana/src/main.test.ts | 56 +++++++++++++++++++++--------- edge-apps/grafana/src/render.ts | 4 +++ 2 files changed, 44 insertions(+), 16 deletions(-) diff --git a/edge-apps/grafana/src/main.test.ts b/edge-apps/grafana/src/main.test.ts index 46ad5ecb1..468bbdf54 100644 --- a/edge-apps/grafana/src/main.test.ts +++ b/edge-apps/grafana/src/main.test.ts @@ -83,33 +83,61 @@ describe('getRenderUrl', () => { }) }) +// eslint-disable-next-line max-lines-per-function describe('fetchAndRenderDashboard', () => { + const RENDER_URL = 'https://example.com/render' + const TOKEN = 'token123' + const imgElement = { setAttribute: mock(() => {}), + src: '', } as unknown as HTMLImageElement - beforeEach(() => { - ;(imgElement.setAttribute as ReturnType).mockClear() - }) + let originalFetch: typeof fetch + let originalCreateObjectURL: typeof URL.createObjectURL + let originalRevokeObjectURL: typeof URL.revokeObjectURL - test('should return success when fetch succeeds', async () => { + function mockSuccessfulFetch(objectUrl = 'blob:fake-url') { globalThis.fetch = mock(async () => ({ ok: true, blob: async () => new Blob(['data'], { type: 'image/png' }), })) as unknown as typeof fetch + globalThis.URL.createObjectURL = mock(() => objectUrl) + } - globalThis.URL.createObjectURL = mock(() => 'blob:fake-url') + beforeEach(() => { + originalFetch = globalThis.fetch + originalCreateObjectURL = globalThis.URL.createObjectURL + originalRevokeObjectURL = globalThis.URL.revokeObjectURL + ;(imgElement.setAttribute as ReturnType).mockClear() + ;(imgElement as { src: string }).src = '' + }) - const result = await fetchAndRenderDashboard( - 'https://example.com/render', - 'token123', - imgElement, - ) + afterEach(() => { + globalThis.fetch = originalFetch + globalThis.URL.createObjectURL = originalCreateObjectURL + globalThis.URL.revokeObjectURL = originalRevokeObjectURL + }) + + test('should return success when fetch succeeds', async () => { + mockSuccessfulFetch() + + const result = await fetchAndRenderDashboard(RENDER_URL, TOKEN, imgElement) expect(result.success).toBe(true) expect(imgElement.setAttribute).toHaveBeenCalledWith('src', 'blob:fake-url') }) + test('should revoke the previous blob URL before setting a new one', async () => { + mockSuccessfulFetch('blob:new-url') + globalThis.URL.revokeObjectURL = mock(() => {}) + ;(imgElement as { src: string }).src = 'blob:old-url' + + await fetchAndRenderDashboard(RENDER_URL, TOKEN, imgElement) + + expect(URL.revokeObjectURL).toHaveBeenCalledWith('blob:old-url') + }) + test('should return failure with HTTP status when response is not ok', async () => { globalThis.fetch = mock(async () => ({ ok: false, @@ -118,7 +146,7 @@ describe('fetchAndRenderDashboard', () => { })) as unknown as typeof fetch const result = await fetchAndRenderDashboard( - 'https://example.com/render', + RENDER_URL, 'bad-token', imgElement, ) @@ -136,11 +164,7 @@ describe('fetchAndRenderDashboard', () => { Promise.reject(new Error('Network request failed')), ) as unknown as typeof fetch - const result = await fetchAndRenderDashboard( - 'https://example.com/render', - 'token123', - imgElement, - ) + const result = await fetchAndRenderDashboard(RENDER_URL, TOKEN, imgElement) expect(result.success).toBe(false) if (!result.success) { diff --git a/edge-apps/grafana/src/render.ts b/edge-apps/grafana/src/render.ts index 9cf385145..52cc9bcf6 100644 --- a/edge-apps/grafana/src/render.ts +++ b/edge-apps/grafana/src/render.ts @@ -45,6 +45,10 @@ export async function fetchAndRenderDashboard( const blob = await response.blob() const objectUrl = URL.createObjectURL(blob) + if (imgElement.src.startsWith('blob:')) { + URL.revokeObjectURL(imgElement.src) + } + imgElement.setAttribute('src', objectUrl) return { success: true } } catch (error) { From 0250bd35871c4d5ed81cf8b7fb5e393ecb573527 Mon Sep 17 00:00:00 2001 From: nicomiguelino Date: Thu, 30 Apr 2026 22:42:21 -0700 Subject: [PATCH 4/4] fix(grafana): propagate fetch errors directly to panic-overlay - Remove FetchResult type and try-catch from fetchAndRenderDashboard - Throw with HTTP status and response body for richer error detail - Simplify main.ts to await the fetch directly; errors bubble to panic-overlay - Add mockFailedFetch helper in tests and assert on thrown errors - Add test for response body inclusion in the error message - Use plain text body in display-errors e2e mock for readable overlay - Regenerate display-errors screenshots --- edge-apps/grafana/e2e/screenshots.spec.ts | 4 +- .../screenshots/1080x1920-display-errors.webp | Bin 23900 -> 39900 bytes .../screenshots/1920x1080-display-errors.webp | Bin 31262 -> 55970 bytes edge-apps/grafana/src/main.test.ts | 56 ++++++++--------- edge-apps/grafana/src/main.ts | 12 +--- edge-apps/grafana/src/render.ts | 58 +++++++----------- 6 files changed, 51 insertions(+), 79 deletions(-) diff --git a/edge-apps/grafana/e2e/screenshots.spec.ts b/edge-apps/grafana/e2e/screenshots.spec.ts index 5f049dbdf..eec5f3df2 100644 --- a/edge-apps/grafana/e2e/screenshots.spec.ts +++ b/edge-apps/grafana/e2e/screenshots.spec.ts @@ -110,8 +110,8 @@ for (const { width, height } of DISPLAY_ERRORS_RESOLUTIONS) { async (route) => route.fulfill({ status: 403, - contentType: 'application/json', - body: JSON.stringify({ message: 'Forbidden' }), + contentType: 'text/plain', + body: 'Access to this Grafana dashboard is forbidden.', }), ) }) diff --git a/edge-apps/grafana/screenshots/1080x1920-display-errors.webp b/edge-apps/grafana/screenshots/1080x1920-display-errors.webp index 8b79fa9c004f9945c4937095be2d5067acb37250..98e830174cbfc7cd6d9362c184a7b997d5ef128c 100644 GIT binary patch literal 39900 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 Ddh1~? literal 23900 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 diff --git a/edge-apps/grafana/screenshots/1920x1080-display-errors.webp b/edge-apps/grafana/screenshots/1920x1080-display-errors.webp index 09094a0efb597b6816ecff728bffdd9c19ca4ab2..15107506644292bbdb9ffebee30d4a8901352b80 100644 GIT binary patch literal 55970 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 diff --git a/edge-apps/grafana/src/main.test.ts b/edge-apps/grafana/src/main.test.ts index 468bbdf54..4f3b2bcb4 100644 --- a/edge-apps/grafana/src/main.test.ts +++ b/edge-apps/grafana/src/main.test.ts @@ -83,7 +83,6 @@ describe('getRenderUrl', () => { }) }) -// eslint-disable-next-line max-lines-per-function describe('fetchAndRenderDashboard', () => { const RENDER_URL = 'https://example.com/render' const TOKEN = 'token123' @@ -119,12 +118,20 @@ describe('fetchAndRenderDashboard', () => { globalThis.URL.revokeObjectURL = originalRevokeObjectURL }) - test('should return success when fetch succeeds', async () => { + function mockFailedFetch(status: number, statusText: string, body = '') { + globalThis.fetch = mock(async () => ({ + ok: false, + status, + statusText, + text: async () => body, + })) as unknown as typeof fetch + } + + test('should render the image when fetch succeeds', async () => { mockSuccessfulFetch() - const result = await fetchAndRenderDashboard(RENDER_URL, TOKEN, imgElement) + await fetchAndRenderDashboard(RENDER_URL, TOKEN, imgElement) - expect(result.success).toBe(true) expect(imgElement.setAttribute).toHaveBeenCalledWith('src', 'blob:fake-url') }) @@ -138,39 +145,30 @@ describe('fetchAndRenderDashboard', () => { expect(URL.revokeObjectURL).toHaveBeenCalledWith('blob:old-url') }) - test('should return failure with HTTP status when response is not ok', async () => { - globalThis.fetch = mock(async () => ({ - ok: false, - status: 401, - statusText: 'Unauthorized', - })) as unknown as typeof fetch + test('should throw with HTTP status when response is not ok', async () => { + mockFailedFetch(401, 'Unauthorized') - const result = await fetchAndRenderDashboard( - RENDER_URL, - 'bad-token', - imgElement, - ) + expect( + fetchAndRenderDashboard(RENDER_URL, 'bad-token', imgElement), + ).rejects.toThrow('HTTP 401 Unauthorized') + }) + + test('should include response body in the error when available', async () => { + mockFailedFetch(403, 'Forbidden', 'Access denied for this user') - expect(result.success).toBe(false) - if (!result.success) { - expect(result.status).toBe(401) - expect(result.statusText).toBe('Unauthorized') - expect(result.message).toContain('401') - } + expect( + fetchAndRenderDashboard(RENDER_URL, 'bad-token', imgElement), + ).rejects.toThrow('HTTP 403 Forbidden - Access denied for this user') }) - test('should return failure with error message on network error', async () => { + test('should throw on network error', async () => { globalThis.fetch = mock(() => Promise.reject(new Error('Network request failed')), ) as unknown as typeof fetch - const result = await fetchAndRenderDashboard(RENDER_URL, TOKEN, imgElement) - - expect(result.success).toBe(false) - if (!result.success) { - expect(result.message).toBe('Network request failed') - expect(result.status).toBeUndefined() - } + expect( + fetchAndRenderDashboard(RENDER_URL, TOKEN, imgElement), + ).rejects.toThrow('Network request failed') }) }) diff --git a/edge-apps/grafana/src/main.ts b/edge-apps/grafana/src/main.ts index a5fdcdeaa..1bb4922b9 100644 --- a/edge-apps/grafana/src/main.ts +++ b/edge-apps/grafana/src/main.ts @@ -38,17 +38,7 @@ window.onload = async function () { const imgElement = document.querySelector('#content img') as HTMLImageElement // Fetch dashboard immediately - const result = await fetchAndRenderDashboard( - imageUrl, - serviceAccessToken, - imgElement, - ) - - if (!result.success) { - throw new Error( - `Failed to load the Grafana dashboard image (${result.message}).`, - ) - } + await fetchAndRenderDashboard(imageUrl, serviceAccessToken, imgElement) // Set up interval to refresh the dashboard setInterval(async () => { diff --git a/edge-apps/grafana/src/render.ts b/edge-apps/grafana/src/render.ts index 52cc9bcf6..0a6b3cb62 100644 --- a/edge-apps/grafana/src/render.ts +++ b/edge-apps/grafana/src/render.ts @@ -1,7 +1,3 @@ -export type FetchResult = - | { success: true } - | { success: false; status?: number; statusText?: string; message: string } - export function getRenderUrl(domain: string, dashboardId: string): string { const renderUrl = `${screenly.cors_proxy_url}/${domain}/render/d/${dashboardId}` const width = window.innerWidth || 1920 @@ -19,41 +15,29 @@ export async function fetchAndRenderDashboard( imageUrl: string, serviceAccessToken: string, imgElement: HTMLImageElement, -): Promise { - try { - const response = await fetch(imageUrl, { - method: 'GET', - headers: { - Authorization: `Bearer ${serviceAccessToken}`, - 'Content-Type': 'image/png', - }, - }) - - if (!response.ok) { - const message = `HTTP ${response.status} ${response.statusText}` - console.error( - `Failed to fetch dashboard image from ${imageUrl}: ${message}`, - ) - return { - success: false, - status: response.status, - statusText: response.statusText, - message, - } - } +): Promise { + const response = await fetch(imageUrl, { + method: 'GET', + headers: { + Authorization: `Bearer ${serviceAccessToken}`, + 'Content-Type': 'image/png', + }, + }) - const blob = await response.blob() - const objectUrl = URL.createObjectURL(blob) + if (!response.ok) { + const body = (await response.text()).trim() + const detail = body ? ` - ${body}` : '' + throw new Error( + `Failed to load the Grafana dashboard image: HTTP ${response.status} ${response.statusText}${detail}`, + ) + } - if (imgElement.src.startsWith('blob:')) { - URL.revokeObjectURL(imgElement.src) - } + const blob = await response.blob() + const objectUrl = URL.createObjectURL(blob) - imgElement.setAttribute('src', objectUrl) - return { success: true } - } catch (error) { - const message = error instanceof Error ? error.message : String(error) - console.error('Error fetching dashboard image:', error) - return { success: false, message } + if (imgElement.src.startsWith('blob:')) { + URL.revokeObjectURL(imgElement.src) } + + imgElement.setAttribute('src', objectUrl) }