19 lines
1.0 KiB
TypeScript
19 lines
1.0 KiB
TypeScript
import { isHandheldUserAgent } from '@/lib/device';
|
|||
|
|
|
||
|
|
describe('isHandheldUserAgent', () => {
|
||
|
|
it.each([
|
||
|
|
['iPhone Safari', 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Mobile/15E148 Safari/604.1'],
|
||
|
|
['Android Chrome', 'Mozilla/5.0 (Linux; Android 14; Pixel 8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0 Mobile Safari/537.36'],
|
||
|
|
['Android tablet', 'Mozilla/5.0 (Linux; Android 13; SM-X710) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0 Safari/537.36'],
|
||
|
|
])('reads %s as handheld', (_, ua) => {
|
||
|
|
expect(isHandheldUserAgent(ua)).toBe(true);
|
||
|
|
});
|
||
|
|
|
||
|
|
it.each([
|
||
|
|
['desktop Chrome', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0 Safari/537.36'],
|
||
|
|
['Windows Edge', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0 Safari/537.36 Edg/126.0'],
|
||
|
|
['missing', null],
|
||
|
|
])('reads %s as not handheld', (_, ua) => {
|
||
|
|
expect(isHandheldUserAgent(ua)).toBe(false);
|
||
|
|
});
|
||
|
|
});
|