Files
fotospiel-app/resources/js/admin/mobile/lib/installBanner.test.ts
Codex Agent d5f038d098 Added onboarding + a lightweight install banner to both the mobile login screen and the settings screen, with Android/Chromium
install prompt support and iOS “Share → Add to Home Screen” guidance. Also added a small helper + tests to decide
  when/which banner variant should show, and shared copy in common.json.
2025-12-28 18:26:17 +01:00

25 lines
1.1 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import { resolveInstallBannerState } from './installBanner';
describe('resolveInstallBannerState', () => {
it('returns null when already installed', () => {
expect(resolveInstallBannerState({ isInstalled: true, isStandalone: false, canInstall: true, isIos: true })).toBeNull();
});
it('returns null when running in standalone mode', () => {
expect(resolveInstallBannerState({ isInstalled: false, isStandalone: true, canInstall: true, isIos: true })).toBeNull();
});
it('returns prompt when install prompt is available', () => {
expect(resolveInstallBannerState({ isInstalled: false, isStandalone: false, canInstall: true, isIos: false })).toEqual({ variant: 'prompt' });
});
it('returns ios when on iOS without prompt', () => {
expect(resolveInstallBannerState({ isInstalled: false, isStandalone: false, canInstall: false, isIos: true })).toEqual({ variant: 'ios' });
});
it('returns null when no install option exists', () => {
expect(resolveInstallBannerState({ isInstalled: false, isStandalone: false, canInstall: false, isIos: false })).toBeNull();
});
});