'use strict'; const common = require('../common'); if (!common.hasCrypto) common.skip('missing crypto'); const assert = require('assert'); const crypto = require('crypto'); const invalidEngineName = 'xxx'; assert.throws( () => crypto.setEngine(true), { code: 'ERR_INVALID_ARG_TYPE', name: 'TypeError', message: 'The "id" argument must be of type string. Received type boolean' + ' (true)' }); assert.throws( () => crypto.setEngine('/path/to/engine', 'notANumber'), { code: 'ERR_INVALID_ARG_TYPE', name: 'TypeError', message: 'The "flags" argument must be of type number. Received type' + " string ('notANumber')" }); assert.throws( () => crypto.setEngine(invalidEngineName), { code: 'ERR_CRYPTO_ENGINE_UNKNOWN', name: 'Error', message: `Engine "${invalidEngineName}" was not found` }); assert.throws( () => crypto.setEngine(invalidEngineName, crypto.constants.ENGINE_METHOD_RSA), { code: 'ERR_CRYPTO_ENGINE_UNKNOWN', name: 'Error', message: `Engine "${invalidEngineName}" was not found` });