web-bluetooth-mock
TypeScript icon, indicating that this package has built-in type declarations

1.2.0 • Public • Published

Web Bluetooth API Mock

Build Status

Mock for the Web Bluetooth API, useful for testing code that uses Web Bluetooth.

Copyright (C) 2017, Uri Shaked. Licensed under the terms of MIT License.

Installation

The Web Bluetooth API mock is available on npm, and can be installed by running:

npm install --save-dev web-bluetooth-mock

Usage example

The following code will test whether a method called connectToDevice() scans for a device containing a 0xffe0 service and connects to it. It assumes jest testing framework, though the code can be very easily adjusted for a different testing framework.

import { WebBluetoothMock, DeviceMock } from './web-bluetooth.mock';

describe('connectToDevice', () => {
  it('should connect to bluetooth device', async () => {
    // Setup a Mock device and register the Web Bluetooth Mock
    const device = new DeviceMock('Dummy-Device', [0xffe0]);
    global.navigator = global.navigator || {};
    global.navigator.bluetooth = new WebBluetoothMock([device]);

    // This is a Jest specific mock, change to just `spyOn(...)` for Jasmine
    jest.spyOn(device.gatt, 'connect');

    // Calling the method we want to be tested
    await connectToDevice();

    // Checking if the function has been invoked. This also means
    // that requestDevice() has been called with a filter that matches
    // the device we defined above.
    expect(device.gatt.connect).toHaveBeenCalled();
  });
});

For a more complete example, check out muse-js library tests.

Readme

Keywords

none

Package Sidebar

Install

npm i web-bluetooth-mock

Weekly Downloads

15

Version

1.2.0

License

MIT

Unpacked Size

20.4 kB

Total Files

9

Last publish

Collaborators

  • urish