<!DOCTYPE html>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/bluetooth/bluetooth-helpers.js"></script>
<script>
'use strict';
bluetooth_test(() => {
  const EXPECTED_VALUE = [0, 1, 2];
  return getMeasurementIntervalCharacteristic()
    .then(({characteristic, fake_characteristic}) => {
      assert_equals(characteristic.value, null);
      return fake_characteristic
        .setNextReadResponse(
          GATT_SUCCESS, EXPECTED_VALUE)
        .then(() => characteristic.readValue())
        .then(() => {
          assert_array_equals(
            new Uint8Array(characteristic.value.buffer),
            EXPECTED_VALUE);
        });
    });
}, 'Succesful read should update characteristic.value');
</script>
