58 lines
1.5 KiB
JavaScript
58 lines
1.5 KiB
JavaScript
|
/**
|
||
|
* @fileoverview Tests for checks.js.
|
||
|
*/
|
||
|
goog.module('protobuf.internal.checksTest');
|
||
|
|
||
|
const {CHECK_TYPE, checkDefAndNotNull, checkFunctionExists} = goog.require('protobuf.internal.checks');
|
||
|
|
||
|
describe('checkDefAndNotNull', () => {
|
||
|
it('throws if undefined', () => {
|
||
|
let value;
|
||
|
if (CHECK_TYPE) {
|
||
|
expect(() => checkDefAndNotNull(value)).toThrow();
|
||
|
} else {
|
||
|
expect(checkDefAndNotNull(value)).toBeUndefined();
|
||
|
}
|
||
|
});
|
||
|
|
||
|
it('throws if null', () => {
|
||
|
const value = null;
|
||
|
if (CHECK_TYPE) {
|
||
|
expect(() => checkDefAndNotNull(value)).toThrow();
|
||
|
} else {
|
||
|
expect(checkDefAndNotNull(value)).toBeNull();
|
||
|
}
|
||
|
});
|
||
|
|
||
|
it('does not throw if empty string', () => {
|
||
|
const value = '';
|
||
|
expect(checkDefAndNotNull(value)).toEqual('');
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe('checkFunctionExists', () => {
|
||
|
it('throws if the function is undefined', () => {
|
||
|
let foo = /** @type {function()} */ (/** @type {*} */ (undefined));
|
||
|
if (CHECK_TYPE) {
|
||
|
expect(() => checkFunctionExists(foo)).toThrow();
|
||
|
} else {
|
||
|
checkFunctionExists(foo);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
it('throws if the property is defined but not a function', () => {
|
||
|
let foo = /** @type {function()} */ (/** @type {*} */ (1));
|
||
|
if (CHECK_TYPE) {
|
||
|
expect(() => checkFunctionExists(foo)).toThrow();
|
||
|
} else {
|
||
|
checkFunctionExists(foo);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
it('does not throw if the function is defined', () => {
|
||
|
function foo(x) {
|
||
|
return x;
|
||
|
}
|
||
|
checkFunctionExists(foo);
|
||
|
});
|
||
|
});
|