34 lines
1.1 KiB
JavaScript
34 lines
1.1 KiB
JavaScript
import { describe, expect, test } from "vitest";
|
|
import { ConstDataView, parse, serialize, sizeofHead } from "../src";
|
|
import { expectDataViewEqual, filledDataView } from ".";
|
|
|
|
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)
|
|
})
|
|
})
|