import { describe, expect, test } from "vitest"; import { ConstDataView, parse, serialize, sizeofHead } from "../src"; import { expectDataViewEqual } from "."; import { filledDataView } from "../src"; describe(ConstDataView.name, () => { test('serialize', () => { const expected = filledDataView([0x00, 0x00, 0x01, 0x02, 0x00, 0x00]) const dv = filledDataView([0x01, 0x02]) const buffer = new ArrayBuffer(6) let actual = new DataView(buffer, 2, 1) expect(() => serialize(actual, dv, ConstDataView(2))).toThrow() actual = new DataView(buffer, 2, 2) expect(() => serialize(actual, dv, ConstDataView(1))).toThrow() serialize(actual, dv, ConstDataView(2)) expectDataViewEqual(new DataView(actual.buffer), expected) }) test('parse', () => { const expected = filledDataView([0x01, 0x02]) const dv = filledDataView([0x00, 0x00, 0x01, 0x02, 0x00, 0x00]) const frame = new DataView(dv.buffer, dv.byteOffset + 2, 2) const actual = parse(frame, ConstDataView(2)) expectDataViewEqual(actual, expected) }) test('sizeof', () => { expect(sizeofHead(ConstDataView(2))).toEqual(2) }) })