Files
ua-parser-js/test/unit/submodules/device-detection.spec.js
2025-10-25 10:28:48 +07:00

32 lines
1.3 KiB
JavaScript

const assert = require('assert');
const { UAParser } = require('../../../src/main/ua-parser');
const { getDeviceVendor, isAppleSilicon } = require('../../../src/device-detection/device-detection');
const { DeviceVendor } = require('../../../src/enums/ua-parser-enums');
describe('getDeviceVendor()', () => {
it('Can guess the device vendor from a model name', () => {
const sm = 'SM-A605G';
const redmi = 'Redmi Note 8';
const nexus = 'Nexus 6P';
const aquos = 'AQUOS-TVX19B';
assert.equal(getDeviceVendor(sm), DeviceVendor.SAMSUNG);
assert.equal(getDeviceVendor(redmi), DeviceVendor.XIAOMI);
assert.equal(getDeviceVendor(nexus), DeviceVendor.HUAWEI);
assert.equal(getDeviceVendor(aquos), DeviceVendor.SHARP);
});
});
describe('isAppleSilicon()', () => {
it('Can detect Apple Silicon device', () => {
const macARM = 'Mozilla/5.0 (Macintosh; ARM; Mac OS X 10.15; rv:97.0) Gecko/20100101 Firefox/97.0';
const macIntel = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:97.0) Gecko/20100101 Firefox/97.0';
assert.equal(isAppleSilicon(UAParser(macIntel)), false);
assert.equal(isAppleSilicon(macIntel), false);
assert.equal(isAppleSilicon(UAParser(macARM)), true);
assert.equal(isAppleSilicon(macARM), true);
});
});