101 lines
3.2 KiB
JavaScript
101 lines
3.2 KiB
JavaScript
'use strict';
|
|
|
|
const assert = require('node:assert').strict;
|
|
const { describe, it } = require('node:test');
|
|
|
|
const test = require('./build/Release/test.node');
|
|
|
|
|
|
const strArgMsg = { message: 'Argument 0 must be of type `String`' };
|
|
const strArgLetMsg = { message: 'Argument 0 must be of type `String` or be `null`/`undefined`' };
|
|
|
|
describe('AT / HPP / REQ_STR_ARG', () => {
|
|
it('exports reqStrArg', () => {
|
|
assert.strictEqual(typeof test.reqStrArg, 'function');
|
|
});
|
|
it('throws if arg was not passed', () => {
|
|
assert.throws(() => test.reqStrArg(), strArgMsg);
|
|
});
|
|
it('throws if arg was passed undefined', () => {
|
|
assert.throws(() => test.reqStrArg(undefined), strArgMsg);
|
|
});
|
|
it('throws if arg was passed null', () => {
|
|
assert.throws(() => test.reqStrArg(null), strArgMsg);
|
|
});
|
|
it('throws if arg was passed a number', () => {
|
|
assert.throws(() => test.reqStrArg(1), strArgMsg);
|
|
});
|
|
it('throws if arg was passed a boolean', () => {
|
|
assert.throws(() => test.reqStrArg(true), strArgMsg);
|
|
});
|
|
it('throws if arg was passed an object', () => {
|
|
assert.throws(() => test.reqStrArg({}), strArgMsg);
|
|
});
|
|
it('throws if arg was passed an array', () => {
|
|
assert.throws(() => test.reqStrArg([]), strArgMsg);
|
|
});
|
|
it('accepts a string', () => {
|
|
assert.strictEqual(test.reqStrArg('1abc'), '1abc');
|
|
});
|
|
});
|
|
|
|
describe('addon-tools.hpp: LET_STR_ARG', () => {
|
|
it('exports letStrArg', () => {
|
|
assert.strictEqual(typeof test.letStrArg, 'function');
|
|
});
|
|
it('throws if arg was passed a number', () => {
|
|
assert.throws(() => test.letStrArg(1), strArgLetMsg);
|
|
});
|
|
it('throws if arg was passed a boolean', () => {
|
|
assert.throws(() => test.letStrArg(true), strArgLetMsg);
|
|
});
|
|
it('throws if arg was passed an object', () => {
|
|
assert.throws(() => test.letStrArg({}), strArgLetMsg);
|
|
});
|
|
it('throws if arg was passed an array', () => {
|
|
assert.throws(() => test.letStrArg([]), strArgLetMsg);
|
|
});
|
|
it('accepts an empty arg', () => {
|
|
assert.strictEqual(test.letStrArg(), '');
|
|
});
|
|
it('accepts undefined', () => {
|
|
assert.strictEqual(test.letStrArg(undefined), '');
|
|
});
|
|
it('accepts null', () => {
|
|
assert.strictEqual(test.letStrArg(null), '');
|
|
});
|
|
it('accepts a string', () => {
|
|
assert.strictEqual(test.letStrArg('1abc'), '1abc');
|
|
});
|
|
});
|
|
|
|
describe('addon-tools.hpp: USE_STR_ARG', () => {
|
|
it('exports useStrArg', () => {
|
|
assert.strictEqual(typeof test.useStrArg, 'function');
|
|
});
|
|
it('throws if arg was passed a number', () => {
|
|
assert.throws(() => test.useStrArg(1), strArgLetMsg);
|
|
});
|
|
it('throws if arg was passed a boolean', () => {
|
|
assert.throws(() => test.useStrArg(true), strArgLetMsg);
|
|
});
|
|
it('throws if arg was passed an object', () => {
|
|
assert.throws(() => test.useStrArg({}), strArgLetMsg);
|
|
});
|
|
it('throws if arg was passed an array', () => {
|
|
assert.throws(() => test.useStrArg([]), strArgLetMsg);
|
|
});
|
|
it('accepts an empty arg', () => {
|
|
assert.strictEqual(test.useStrArg(), 'default');
|
|
});
|
|
it('accepts undefined', () => {
|
|
assert.strictEqual(test.useStrArg(undefined), 'default');
|
|
});
|
|
it('accepts null', () => {
|
|
assert.strictEqual(test.useStrArg(null), 'default');
|
|
});
|
|
it('accepts a string', () => {
|
|
assert.strictEqual(test.useStrArg('1abc'), '1abc');
|
|
});
|
|
});
|