import { test } from 'node:test'; import assert from 'node:assert/strict'; import { shouldGoImmersive, wantsBrowserFullscreen } from './landscapeCall'; const base = { landscapePhone: true, joinedHere: true, chatOpen: false, dismissed: false }; test('[#126] full screen only for a joined call on a sideways phone', () => { assert.equal(shouldGoImmersive(base), true); assert.equal(shouldGoImmersive({ ...base, landscapePhone: false }), false, 'upright / tablet'); assert.equal(shouldGoImmersive({ ...base, joinedHere: false }), false, 'prescreen / other room'); assert.equal(shouldGoImmersive({ ...base, chatOpen: true }), false, 'chat open'); assert.equal(shouldGoImmersive({ ...base, dismissed: true }), false, 'user exited'); }); test('[#126] browser full screen only in an Android browser tab', () => { const env = { userAgent: 'Mozilla/5.0 (Linux; Android 14; Pixel 8) Chrome/140 Mobile', standalone: false, fullscreenEnabled: true, alreadyFullscreen: false, }; assert.equal(wantsBrowserFullscreen(env), true); assert.equal(wantsBrowserFullscreen({ ...env, standalone: true }), false, 'installed app'); assert.equal( wantsBrowserFullscreen({ ...env, userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_0) Safari', }), false, 'iPhone', ); assert.equal(wantsBrowserFullscreen({ ...env, alreadyFullscreen: true }), false); assert.equal(wantsBrowserFullscreen({ ...env, fullscreenEnabled: false }), false); });