Files
serialize-js/test/ConstArray.test.js

37 lines
1.2 KiB
JavaScript

import { describe, expect, test } from "vitest";
import { ConstArray, parse, serialize, sizeof, sizeofHead } from "../src";
import { expectDataViewEqual, filledDataView, sizedDataView } from ".";
describe(ConstArray.name, () => {
test('serialize, Number', () => {
const expected = filledDataView([
0x3F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
])
let dv = sizedDataView(15)
expect(() => serialize(dv, [1, 2], ConstArray(2), Number)).toThrow()
dv = sizedDataView(sizeof(ConstArray(2), Number))
expect(16).toEqual(dv.byteLength)
expect(() => serialize(dv, [1, 2, 3], ConstArray(2), Number)).toThrow()
serialize(dv, [1, 2], ConstArray(2), Number)
expectDataViewEqual(dv, expected)
})
test('parse, Number', () => {
const expected = [1, 2]
const dv = filledDataView([
0x3F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
])
const actual = parse(dv, ConstArray(2), Number)
expectDataViewEqual(actual, expected)
})
test('sizeof', () => {
expect(sizeofHead(ConstArray(2), Number)).toEqual(16)
})
})