Nuxt/packages/utils/test/modern.test.js

61 lines
1.6 KiB
JavaScript
Raw Normal View History

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)
})
})