1// Flags: --expose-internals
2'use strict';
3const common = require('../common');
4
5if (!common.hasCrypto)
6  common.skip('missing crypto');
7
8const assert = require('assert');
9// Monkey-patch SecureContext
10const { internalBinding } = require('internal/test/binding');
11const binding = internalBinding('crypto');
12const NativeSecureContext = binding.SecureContext;
13
14binding.SecureContext = function() {
15  const rv = new NativeSecureContext();
16  rv.setClientCertEngine = undefined;
17  return rv;
18};
19
20const tls = require('tls');
21
22{
23  assert.throws(
24    () => { tls.createSecureContext({ clientCertEngine: 'Cannonmouth' }); },
25    {
26      code: 'ERR_CRYPTO_CUSTOM_ENGINE_NOT_SUPPORTED',
27      message: 'Custom engines not supported by this OpenSSL'
28    }
29  );
30}
31