import { isModernRequest } from '../src/modern' const createRequest = () => ({ socket: {}, headers: {} }) describe('utils: modern', () => { test('should not detect modern build if modern mode is specified', () => { const req = createRequest() isModernRequest(req) isModernRequest(req, 'client') isModernRequest(req, 'server') expect(req.socket._modern).toEqual(false) }) test('should not detect modern browser if connect has been detected', () => { const req = createRequest() req.socket = { _modern: true } isModernRequest(req, 'server') expect(req.socket._modern).toEqual(true) }) test('should detect modern browser based on user-agent', () => { const req = createRequest() const ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36' req.headers['user-agent'] = ua req.socket = {} isModernRequest(req, 'server') expect(req.socket._modern).toEqual(true) expect(req.socket._modern).toEqual(true) }) test('should detect legacy browser based on user-agent', () => { const req = createRequest() const ua = 'Mozilla/5.0 (Windows; U; MSIE 9.0; WIndows NT 9.0; en-US))' req.headers['user-agent'] = ua req.socket = {} isModernRequest(req, 'client') expect(req.socket._modern).toEqual(false) }) test('should ignore illegal user-agent', () => { const req = createRequest() const ua = 'illegal user agent' req.headers['user-agent'] = ua req.socket = {} isModernRequest(req, 'client') expect(req.socket._modern).toEqual(false) }) })