101 lines
3.1 KiB
JavaScript
101 lines
3.1 KiB
JavaScript
'use strict';
|
|
|
|
const assert = require('node:assert').strict;
|
|
const { describe, it } = require('node:test');
|
|
|
|
const test = require('./build/Release/test.node');
|
|
|
|
|
|
const numArgMsg = { message: 'Argument 0 must be of type `Number`' };
|
|
const numArgLetMsg = { message: 'Argument 0 must be of type `Number` or be `null`/`undefined`' };
|
|
|
|
describe('AT / HPP / REQ_OFFS_ARG', () => {
|
|
it('exports reqOffsArg', () => {
|
|
assert.strictEqual(typeof test.reqOffsArg, 'function');
|
|
});
|
|
it('throws if arg was not passed', () => {
|
|
assert.throws(() => test.reqOffsArg(), numArgMsg);
|
|
});
|
|
it('throws if arg was passed undefined', () => {
|
|
assert.throws(() => test.reqOffsArg(undefined), numArgMsg);
|
|
});
|
|
it('throws if arg was passed null', () => {
|
|
assert.throws(() => test.reqOffsArg(null), numArgMsg);
|
|
});
|
|
it('throws if arg was passed a string', () => {
|
|
assert.throws(() => test.reqOffsArg('1'), numArgMsg);
|
|
});
|
|
it('throws if arg was passed a boolean', () => {
|
|
assert.throws(() => test.reqOffsArg(true), numArgMsg);
|
|
});
|
|
it('throws if arg was passed an object', () => {
|
|
assert.throws(() => test.reqOffsArg({}), numArgMsg);
|
|
});
|
|
it('throws if arg was passed an array', () => {
|
|
assert.throws(() => test.reqOffsArg([]), numArgMsg);
|
|
});
|
|
it('accepts a number', () => {
|
|
assert.strictEqual(test.reqOffsArg(55), 55);
|
|
});
|
|
});
|
|
|
|
describe('addon-tools.hpp: LET_OFFS_ARG', () => {
|
|
it('exports letOffsArg', () => {
|
|
assert.strictEqual(typeof test.letOffsArg, 'function');
|
|
});
|
|
it('throws if arg was passed a string', () => {
|
|
assert.throws(() => test.letOffsArg('1'), numArgLetMsg);
|
|
});
|
|
it('throws if arg was passed a boolean', () => {
|
|
assert.throws(() => test.letOffsArg(true), numArgLetMsg);
|
|
});
|
|
it('throws if arg was passed an object', () => {
|
|
assert.throws(() => test.letOffsArg({}), numArgLetMsg);
|
|
});
|
|
it('throws if arg was passed an array', () => {
|
|
assert.throws(() => test.letOffsArg([]), numArgLetMsg);
|
|
});
|
|
it('accepts an empty arg', () => {
|
|
assert.strictEqual(test.letOffsArg(), 0);
|
|
});
|
|
it('accepts undefined', () => {
|
|
assert.strictEqual(test.letOffsArg(undefined), 0);
|
|
});
|
|
it('accepts null', () => {
|
|
assert.strictEqual(test.letOffsArg(null), 0);
|
|
});
|
|
it('accepts a number', () => {
|
|
assert.strictEqual(test.letOffsArg(55), 55);
|
|
});
|
|
});
|
|
|
|
describe('addon-tools.hpp: USE_OFFS_ARG', () => {
|
|
it('exports useOffsArg', () => {
|
|
assert.strictEqual(typeof test.useOffsArg, 'function');
|
|
});
|
|
it('throws if arg was passed a string', () => {
|
|
assert.throws(() => test.useOffsArg('1'), numArgLetMsg);
|
|
});
|
|
it('throws if arg was passed a boolean', () => {
|
|
assert.throws(() => test.useOffsArg(true), numArgLetMsg);
|
|
});
|
|
it('throws if arg was passed an object', () => {
|
|
assert.throws(() => test.useOffsArg({}), numArgLetMsg);
|
|
});
|
|
it('throws if arg was passed an array', () => {
|
|
assert.throws(() => test.useOffsArg([]), numArgLetMsg);
|
|
});
|
|
it('accepts an empty arg', () => {
|
|
assert.strictEqual(test.useOffsArg(), 10);
|
|
});
|
|
it('accepts undefined', () => {
|
|
assert.strictEqual(test.useOffsArg(undefined), 10);
|
|
});
|
|
it('accepts null', () => {
|
|
assert.strictEqual(test.useOffsArg(null), 10);
|
|
});
|
|
it('accepts a number', () => {
|
|
assert.strictEqual(test.useOffsArg(55), 55);
|
|
});
|
|
});
|