advlib-ble-manufacturers
Version:
Wireless advertising packet decoding library for Bluetooth Low Energy manufacturer-specific data. We believe in an open Internet of Things.
51 lines (39 loc) • 1.67 kB
JavaScript
/**
* Copyright reelyActive 2015-2021
* We believe in an open Internet of Things
*/
const advlib = require('../../lib/advlibblemanufacturers.js');
const assert = require ('assert');
// Input data for the scenario
const INPUT_DATA_INVALID_COMPANY_CODE = 0;
const INPUT_DATA_INVALID_HEX_STRING = 'xyz';
const INPUT_DATA_TOO_SHORT_BUFFER = Buffer.from('', 'hex');
const INPUT_DATA_COMPANY_APPLE = 0x004c;
const INPUT_DATA_IBEACON = '021500112233445566778899aabbccddeeff01234567fc';
// Expected outputs for the scenario
const EXPECTED_DATA_INVALID_INPUT = null;
const EXPECTED_DATA_IBEACON = {
txPower: -4,
deviceIds: [ "00112233445566778899aabbccddeeff/0123/4567" ],
uri: "https://sniffypedia.org/Organization/Apple_Inc/iBeacon/"
}
// Describe the scenario
describe('advlib-ble-manufacturers', function() {
// Test the process function with no input data
it('should handle no input data', function() {
assert.deepEqual(advlib.processManufacturerSpecificData(),
EXPECTED_DATA_INVALID_INPUT);
});
// Test the process function with an invalid company code
it('should handle an invalid company code as input', function() {
assert.deepEqual(advlib.processManufacturerSpecificData(
INPUT_DATA_INVALID_COMPANY_CODE),
EXPECTED_DATA_INVALID_INPUT);
});
// Test the process function with valid Apple iBeacon data
it('should handle valid manufacturer-specific data as input', function() {
assert.deepEqual(advlib.processManufacturerSpecificData(
INPUT_DATA_COMPANY_APPLE, INPUT_DATA_IBEACON),
EXPECTED_DATA_IBEACON);
});
});