1'use strict'; 2 3const common = require('../common'); 4if (!common.hasCrypto) 5 common.skip('missing crypto'); 6 7const assert = require('assert'); 8const http2 = require('http2'); 9const { inspect } = require('util'); 10 11// Verify that setTimeout callback verifications work correctly 12const verifyCallbacks = (server) => { 13 const testTimeout = 10; 14 15 [true, 1, {}, [], null, 'test'].forEach((notFunction) => { 16 assert.throws( 17 () => server.setTimeout(testTimeout, notFunction), 18 { 19 name: 'TypeError', 20 code: 'ERR_INVALID_CALLBACK', 21 message: 'Callback must be a function. ' + 22 `Received ${inspect(notFunction)}` 23 } 24 ); 25 }); 26 27 // No callback 28 const returnedVal = server.setTimeout(testTimeout); 29 assert.strictEqual(returnedVal.timeout, testTimeout); 30}; 31 32// Test with server 33{ 34 const server = http2.createServer(); 35 verifyCallbacks(server); 36} 37 38// Test with secure server 39{ 40 const secureServer = http2.createSecureServer({}); 41 verifyCallbacks(secureServer); 42} 43