2017-09-21 10:07:56 -07:00
|
|
|
// Flags: --expose-internals
|
2017-07-17 10:29:42 -07:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
const common = require('../common');
|
|
|
|
const assert = require('assert');
|
|
|
|
const {
|
|
|
|
assertIsObject,
|
|
|
|
assertWithinRange,
|
|
|
|
} = require('internal/http2/util');
|
|
|
|
|
|
|
|
[
|
|
|
|
undefined,
|
|
|
|
{},
|
|
|
|
Object.create(null),
|
|
|
|
new Date(),
|
|
|
|
new (class Foo {})()
|
|
|
|
].forEach((i) => {
|
2017-10-28 17:39:55 +08:00
|
|
|
assert.doesNotThrow(() => assertIsObject(i, 'foo', 'Object'));
|
2017-07-17 10:29:42 -07:00
|
|
|
});
|
|
|
|
|
|
|
|
[
|
|
|
|
1,
|
|
|
|
false,
|
|
|
|
'hello',
|
|
|
|
NaN,
|
|
|
|
Infinity,
|
|
|
|
[],
|
|
|
|
[{}]
|
|
|
|
].forEach((i) => {
|
2017-10-28 17:39:55 +08:00
|
|
|
assert.throws(() => assertIsObject(i, 'foo', 'Object'),
|
2017-07-17 10:29:42 -07:00
|
|
|
common.expectsError({
|
|
|
|
code: 'ERR_INVALID_ARG_TYPE',
|
2017-10-28 17:39:55 +08:00
|
|
|
message: /^The "foo" argument must be of type Object$/
|
2017-07-17 10:29:42 -07:00
|
|
|
}));
|
|
|
|
});
|
|
|
|
|
|
|
|
assert.doesNotThrow(() => assertWithinRange('foo', 1, 0, 2));
|
|
|
|
|
|
|
|
assert.throws(() => assertWithinRange('foo', 1, 2, 3),
|
|
|
|
common.expectsError({
|
|
|
|
code: 'ERR_HTTP2_INVALID_SETTING_VALUE',
|
|
|
|
message: /^Invalid value for setting "foo": 1$/
|
|
|
|
}));
|