1 | const isMobileDevice = require('./isMobileDevice')
|
2 |
|
3 | let fakeUserAgent = null
|
4 |
|
5 | Object.defineProperty(global.navigator, 'userAgent', {
|
6 | get () {
|
7 | return fakeUserAgent
|
8 | },
|
9 | })
|
10 |
|
11 | function setUserAgent (userAgent) {
|
12 | fakeUserAgent = userAgent
|
13 | }
|
14 |
|
15 | describe('isMobileDevice', () => {
|
16 | it('should return true if the specified user agent is mobile', () => {
|
17 | setUserAgent('Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1 Mobile/15E148 Safari/604.1')
|
18 | expect(isMobileDevice()).toEqual(true)
|
19 | setUserAgent('Mozilla/5.0 (Linux; Android 7.0; SM-G570M Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/69.0.3497.100 Mobile Safari/537.36 [FB_IAB/FB4A;FBAV/192.0.0.34.85;]')
|
20 | expect(isMobileDevice()).toEqual(true)
|
21 | })
|
22 |
|
23 | it('should return false if the user agent is not mobile', () => {
|
24 | setUserAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/605.1.15 (KHTML, like Gecko)')
|
25 | expect(isMobileDevice()).toEqual(false)
|
26 | setUserAgent('Mozilla/5.0 (SMART-TV; Linux; Tizen 2.4.0) AppleWebkit/538.1 (KHTML, like Gecko) SamsungBrowser/1.1 TV Safari/538.1')
|
27 | expect(isMobileDevice()).toEqual(false)
|
28 | })
|
29 | })
|