/* eslint-env mocha */ import { expect } from 'chai'; import { UAParserMobile, UAParserDesktop } from './UAParserCustom'; const UAMobile = 'RC Mobile; iOS 12.2; v3.4.0 (250)'; const UADesktop = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/537.36 (KHTML, like Gecko) Rocket.Chat/2.15.2 Chrome/69.0.3497.128 Electron/4.1.4 Safari/537.36'; const UAChrome = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'; describe('UAParserCustom', () => { describe('UAParserMobile', () => { it('should identify mobile UA', () => { expect(UAParserMobile.isMobileApp(UAMobile)).to.be.true; }); it('should not identify desktop UA', () => { expect(UAParserMobile.isMobileApp(UADesktop)).to.be.false; }); it('should not identify chrome UA', () => { expect(UAParserMobile.isMobileApp(UAChrome)).to.be.false; }); it('should parse mobile UA', () => { expect(UAParserMobile.uaObject(UAMobile)).to.be.deep.equal({ device: { type: 'mobile-app', }, app: { name: 'RC Mobile', version: '3.4.0', bundle: '250', }, os: { name: 'iOS', version: '12.2', }, }); }); }); describe('UAParserDesktop', () => { it('should not identify mobile UA', () => { expect(UAParserDesktop.isDesktopApp(UAMobile)).to.be.false; }); it('should identify desktop UA', () => { expect(UAParserDesktop.isDesktopApp(UADesktop)).to.be.true; }); it('should not identify chrome UA', () => { expect(UAParserDesktop.isDesktopApp(UAChrome)).to.be.false; }); it('should parse desktop UA', () => { expect(UAParserDesktop.uaObject(UADesktop)).to.be.deep.equal({ device: { type: 'desktop-app', }, app: { name: 'Rocket.Chat', version: '2.15.2', }, os: { name: 'Mac OS', version: '10.14.1', }, }); }); }); });