summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/bluetooth/script-tests/characteristic/characteristic-is-removed.js
blob: 48aaec3e93015dd656e8c3dac75860875bfcd4cd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
'use strict';
const test_desc = 'Characteristic gets removed. Reject with InvalidStateError.';
const expected = new DOMException('GATT Characteristic no longer exists.',
                                  'InvalidStateError');
let fake_peripheral, characteristic, fake_characteristic;

bluetooth_test(() => getMeasurementIntervalCharacteristic()
    .then(_ => ({fake_peripheral, characteristic, fake_characteristic} = _))
    .then(() => characteristic.getDescriptor(user_description.name))
    .then(() => null, (e) => assert_unreached('Caught error unexpectedly.', e))
    .then(() => fake_characteristic.remove())
    .then(() => fake_peripheral.simulateGATTServicesChanged())
    .then(() => assert_promise_rejects_with_message(
      characteristic.CALLS([
        getDescriptor(user_description.name)|
        getDescriptors(user_description.name)[UUID]|
        getDescriptors()|
        readValue()|
        writeValue(new Uint8Array(1))|
        writeValueWithResponse(new Uint8Array(1))|
        writeValueWithoutResponse(new Uint8Array(1))|
        startNotifications()
      ]), expected)),
    test_desc);