/** * Setup testing */ const fs = require('fs'); const chai = require('chai'); const chaiAsPromised = require('chai-as-promised'); const axios = require('./../src/axios'); /** * Add promise support to Chai */ chai.use(chaiAsPromised); /** * Challenge test server ports */ if (process.env.ACME_HTTP_PORT) { axios.defaults.acmeSettings.httpChallengePort = process.env.ACME_HTTP_PORT; } if (process.env.ACME_HTTPS_PORT) { axios.defaults.acmeSettings.httpsChallengePort = process.env.ACME_HTTPS_PORT; } if (process.env.ACME_TLSALPN_PORT) { axios.defaults.acmeSettings.tlsAlpnChallengePort = process.env.ACME_TLSALPN_PORT; } /** * Greatly reduce retry duration while testing */ axios.defaults.acmeSettings.retryMaxAttempts = 3; axios.defaults.acmeSettings.retryDefaultDelay = 1; /** * External account binding */ if (('ACME_CAP_EAB_ENABLED' in process.env) && (process.env.ACME_CAP_EAB_ENABLED === '1')) { const pebbleConfig = JSON.parse(fs.readFileSync('/etc/pebble/pebble.json').toString()); const [kid, hmacKey] = Object.entries(pebbleConfig.pebble.externalAccountMACKeys)[0]; process.env.ACME_EAB_KID = kid; process.env.ACME_EAB_HMAC_KEY = hmacKey; }