// @ts-expect-error - bun:test is provided by the Bun runtime; viewer does not // depend on @types/bun so the import type is unresolved at compile time. import { describe, expect, test } from 'bun:test' import { isSafariUserAgent, shouldForceWebGLRenderer } from './renderer-backend' const SAFARI_MAC = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.5 Safari/605.1.15' const CHROME_MAC = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36' describe('renderer backend selection', () => { test('identifies desktop Safari without classifying Chrome as Safari', () => { expect(isSafariUserAgent(SAFARI_MAC)).toBe(true) expect(isSafariUserAgent(CHROME_MAC)).toBe(false) }) test('uses WebGL for Safari and leaves Chrome on the default backend', () => { expect(shouldForceWebGLRenderer({ search: '', userAgent: SAFARI_MAC })).toBe(true) expect(shouldForceWebGLRenderer({ search: '', userAgent: CHROME_MAC })).toBe(false) }) test('honors an explicit renderer override', () => { expect(shouldForceWebGLRenderer({ search: '?renderer=webgpu', userAgent: SAFARI_MAC })).toBe( false, ) expect(shouldForceWebGLRenderer({ search: '?renderer=webgl', userAgent: CHROME_MAC })).toBe( true, ) }) })