The Node.js® Website
1import { detectOsInUserAgent } from '@/util/detectOS';
2
3describe('detectOsInUserAgent', () => {
4 it.each([
5 [
6 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246',
7 'WIN',
8 ],
9 [
10 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36',
11 'MAC',
12 ],
13 [
14 'Mozilla/5.0 (X11; CrOS x86_64 8172.45.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.64 Safari/537.36',
15 'OTHER',
16 ],
17 [
18 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:15.0) Gecko/20100101 Firefox/15.0.1',
19 'LINUX',
20 ],
21 [
22 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.3 Mobile/15E148 Safari/604.1',
23 'MAC',
24 ],
25 ['', 'OTHER'],
26 ['OTHERAgent/1.0', 'OTHER'],
27 [undefined, 'OTHER'],
28 ])('detectOsInUserAgent(%s) returns %s', (os, expected) => {
29 expect(detectOsInUserAgent(os)).toBe(expected);
30 });
31});