Reorganize test files

This commit is contained in:
Faisal Salman
2024-11-22 22:29:03 +07:00
parent bcf249da06
commit f5ee90fcf8
66 changed files with 121 additions and 66 deletions

View File

@@ -4,11 +4,11 @@ const parseJS = require('@babel/parser').parse;
const traverse = require('@babel/traverse').default;
const safe = require('safe-regex');
const { UAParser } = require('../src/main/ua-parser');
const clis = require('./specs/browser-clis.json');
const crawlers = require('./specs/browser-crawlers.json');
const emails = require('./specs/browser-emails.json');
const fetchers = require('./specs/browser-fetchers.json');
const libraries = require('./specs/browser-libraries.json');
const clis = require('./specs/extension/cli.json');
const crawlers = require('./specs/extension/crawler.json');
const emails = require('./specs/extension/email.json');
const fetchers = require('./specs/extension/fetcher.json');
const libraries = require('./specs/extension/library.json');
const { Bots, CLIs, Crawlers, Emails, Fetchers, Libraries } = require('../src/extensions/ua-parser-extensions');
describe('Extensions', () => {

View File

@@ -5,11 +5,11 @@ var requirejs = require('requirejs');
var parseJS = require('@babel/parser').parse;
var traverse = require('@babel/traverse').default;
var {UAParser} = require('../src/main/ua-parser');
var browsers = require('./specs/browser-all.json');
var cpus = require('./specs/cpu-all.json');
var devices = readJsonFiles('test/specs/devices');
var engines = require('./specs/engine-all.json');
var os = require('./specs/os-all.json');
var browsers = require('./specs/browser/browser-all.json');
var cpus = require('./specs/cpu/cpu-all.json');
var devices = readJsonFiles('test/specs/device');
var engines = require('./specs/engine/engine-all.json');
var os = require('./specs/os/os-all.json');
var { Headers } = require('node-fetch');
function readJsonFiles(dir) {
@@ -20,39 +20,6 @@ function readJsonFiles(dir) {
return list;
};
var parser = new UAParser();
var methods = [
{
title : 'getBrowser',
label : 'browser',
list : browsers,
properties : ['name', 'major', 'version', 'type']
},
{
title : 'getCPU',
label : 'cpu',
list : cpus,
properties : ['architecture']
},
{
title : 'getDevice',
label : 'device',
list : devices,
properties : ['model', 'type', 'vendor']
},
{
title : 'getEngine',
label : 'engine',
list : engines,
properties : ['name', 'version']
},
{
title : 'getOS',
label : 'os',
list : os,
properties : ['name', 'version']
}];
describe('UAParser()', function () {
var ua = 'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6';
assert.deepEqual(UAParser(ua), new UAParser().setUA(ua).getResult());
@@ -66,26 +33,50 @@ describe('UAParser.setUA method does not throw with undefined ua argument', func
assert.doesNotThrow(() => new UAParser().setUA(undefined).getResult());
});
for (var i in methods) {
describe(methods[i]['title'], function () {
for (var j in methods[i]['list']) {
if (!!methods[i]['list'][j].ua) {
describe('[' + methods[i]['list'][j].desc + ']', function () {
describe('"' + methods[i]['list'][j].ua + '"', function () {
var expect = methods[i]['list'][j].expect;
var result = parser.setUA(methods[i]['list'][j].ua).getResult()[methods[i]['label']];
methods[i]['properties'].forEach(function(m) {
it('should return ' + methods[i]['label'] + ' ' + m + ': ' + expect[m], function () {
assert.strictEqual(result[m], expect[m] != 'undefined' ? expect[m] : undefined);
});
describe('UAParser get*() methods', () => {
[
{
title : 'getBrowser()',
label : 'browser',
list : browsers
},
{
title : 'getCPU()',
label : 'cpu',
list : cpus
},
{
title : 'getDevice()',
label : 'device',
list : devices
},
{
title : 'getEngine()',
label : 'engine',
list : engines
},
{
title : 'getOS()',
label : 'os',
list : os
}
]
.forEach(method => {
describe(`[${method.title}]`, () => {
method.list.forEach(unit => {
describe(`[${unit.desc}]: "${unit.ua}"`, () => {
const actual = UAParser(unit.ua)[method.label];
Object.entries(unit.expect).forEach(entry => {
const [key, val] = entry;
it(`Should return ${key}: ${val}`, () => {
assert.strictEqual(String(val), String(actual[key]));
});
});
});
}
}
});
});
});
}
});
describe('Returns', function () {
it('getResult() should returns JSON', function(done) {
@@ -192,9 +183,9 @@ describe('Testing regexes', function () {
describe('Begin testing', function () {
it('all regexes in main file', function () {
regexes.forEach(function (regex) {
describe('Test against `safe-regex` : ' + regex, function () {
it('should be safe from potentially vulnerable regex', function () {
describe('Test against `safe-regex` module', function () {
regexes.forEach(function (regex) {
it(`Should pass \`safe-regex\`: ${regex}`, function () {
assert.strictEqual(safe(regex), true);
});
});