<!-- Generated by //third_party/blink/web_tests/bluetooth/generate.py -->
<!DOCTYPE html>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/testdriver.js"></script>
<script src="../../../resources/testdriver-vendor.js"></script>
<script src="../../../external/wpt/bluetooth/resources/bluetooth-helpers.js"></script>
<script>
'use strict';
const test_desc = 'Descriptor gets removed. Reject with InvalidStateError.';
const expected = new DOMException('GATT Descriptor no longer exists.',
    'InvalidStateError');
let descriptor, fake_descriptor, fake_characteristic, fake_peripheral;

bluetooth_test(() => getUserDescriptionDescriptor()
    .then(_ =>
      ({descriptor, fake_descriptor, fake_characteristic, fake_peripheral} = _))
    .then(() => fake_descriptor.remove())
    .then(() => fake_peripheral.simulateGATTServicesChanged())
    .then(() => assert_promise_rejects_with_message(
        descriptor.writeValue(new Uint8Array(1 /* length */)),
        expected,
        'Descriptor got removed')),
    test_desc);

</script>
