1
0
mirror of https://github.com/lancedikson/bowser synced 2026-03-02 03:40:27 +00:00

Add support for using short version for browser name in satisfies

This commit is contained in:
Will Soares
2019-02-17 22:05:40 -03:00
parent 28bff841b3
commit a307533f74
6 changed files with 106 additions and 6 deletions

View File

@@ -5,6 +5,9 @@ import Parser from '../../src/parser';
const UA = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36 OPR/43.0.2442.1165';
const parser = new Parser(UA, true);
const EDGE_UA = 'Mozilla/5.0 (Linux; Android 8.0; Pixel XL Build/OPP3.170518.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.0 Mobile Safari/537.36 EdgA/41.1.35.1';
const edgeParser = new Parser(EDGE_UA, true);
test('constructor', (t) => {
t.truthy(parser instanceof Parser);
});
@@ -145,6 +148,13 @@ test('Parser.satisfies for versionless UA strings', (t) => {
}), void 0);
});
test('Parser.satisfies should consider aliases while handling browsers', (t) => {
t.is(edgeParser.satisfies({ 'Microsoft Edge': '=41.1.35.1' }), true);
t.is(edgeParser.satisfies({ 'microsoft edge': '=41.1.35.1' }), true);
t.is(edgeParser.satisfies({ 'edge': '=41.1.35.1' }), true);
t.is(edgeParser.satisfies({ 'Edge': '=41.1.35.1' }), true);
});
test('Parser.is should pass', (t) => {
t.is(parser.is('opera'), true);
t.is(parser.is('desktop'), true);
@@ -158,3 +168,19 @@ test('Parser.some should pass', (t) => {
t.is(parser.some([]), false);
t.is(parser.some(), false);
});
test('Parser.isBrowser should pass when not loosely checking', (t) => {
t.is(edgeParser.isBrowser('Microsoft Edge', false), true);
t.is(edgeParser.isBrowser('microsoft edge', false), true);
t.is(edgeParser.isBrowser('mIcrosoft eDge', false), true);
t.is(edgeParser.isBrowser('edge', false), false);
t.is(edgeParser.isBrowser('Edge', false), false);
});
test('Parser.isBrowser should pass when loosely checking', (t) => {
t.is(edgeParser.isBrowser('Microsoft Edge', true), true);
t.is(edgeParser.isBrowser('microsoft edge', true), true);
t.is(edgeParser.isBrowser('mIcrosoft eDge', true), true);
t.is(edgeParser.isBrowser('edge', true), true);
t.is(edgeParser.isBrowser('Edge', true), true);
});

View File

@@ -1,5 +1,6 @@
import test from 'ava';
import {
getBrowserAlias,
getFirstMatch,
getWindowsVersionName,
compareVersions,
@@ -50,3 +51,8 @@ test('compareVersions', (t) => {
t.is(compareVersions(versionA, versionB, isLoose), result, `version ${versionA} should be ${matching} version ${versionB}`);
});
});
test('getBrowserAlias', (t) => {
t.is(getBrowserAlias('Microsoft Edge'), 'edge');
t.is(getBrowserAlias('Unexisting Browser'), void 0);
});