diff --git a/test/integration/account-creation-oidc-test.js b/test/integration/account-creation-oidc-test.js index 34997fc03..9bfdb7a79 100644 --- a/test/integration/account-creation-oidc-test.js +++ b/test/integration/account-creation-oidc-test.js @@ -2,7 +2,7 @@ const supertest = require('supertest') // Helper functions for the FS const $rdf = require('rdflib') -const { rm, read } = require('../utils') +const { rm, read, checkDnsSettings } = require('../utils') const ldnode = require('../../index') const path = require('path') const fs = require('fs-extra') @@ -26,6 +26,8 @@ describe('AccountManager (OIDC account creation tests)', function () { serverUri }) + before(checkDnsSettings) + before(function (done) { ldpHttpsServer = ldp.listen(3457, done) }) diff --git a/test/integration/acl-oidc-test.js b/test/integration/acl-oidc-test.js index 15078b032..20d7089ed 100644 --- a/test/integration/acl-oidc-test.js +++ b/test/integration/acl-oidc-test.js @@ -2,7 +2,7 @@ const assert = require('chai').assert const fs = require('fs-extra') const request = require('request') const path = require('path') -const { loadProvider, rm } = require('../utils') +const { loadProvider, rm, checkDnsSettings } = require('../utils') const IDToken = require('@trust/oidc-op/src/IDToken') const ldnode = require('../../index') @@ -60,6 +60,8 @@ const argv = { describe('ACL HTTP', function () { let ldp, ldpHttpsServer + before(checkDnsSettings) + before(done => { ldp = ldnode.createServer(argv) diff --git a/test/integration/cors-proxy-test.js b/test/integration/cors-proxy-test.js index c79afea45..7191d7af6 100644 --- a/test/integration/cors-proxy-test.js +++ b/test/integration/cors-proxy-test.js @@ -2,6 +2,7 @@ var assert = require('chai').assert var supertest = require('supertest') var path = require('path') var nock = require('nock') +var { checkDnsSettings } = require('../utils') var ldnode = require('../../index') @@ -13,6 +14,8 @@ describe('CORS Proxy', () => { }) var server = supertest(ldp) + before(checkDnsSettings) + it('should return the website in /proxy?uri', (done) => { nock('https://example.org').get('/').reply(200) server.get('/proxy?uri=https://example.org/') diff --git a/test/utils.js b/test/utils.js index 4e8205917..bb2db832a 100644 --- a/test/utils.js +++ b/test/utils.js @@ -3,6 +3,9 @@ var fsExtra = require('fs-extra') var rimraf = require('rimraf') var path = require('path') const OIDCProvider = require('@trust/oidc-op') +const dns = require('dns') + +const TEST_HOSTS = ['nic.localhost', 'tim.localhost', 'nicola.localhost'] exports.rm = function (file) { return rimraf.sync(path.join(__dirname, '/resources/' + file)) @@ -35,6 +38,24 @@ exports.restore = function (src) { exports.rm(src + '.bak') } +// Verifies that all HOSTS entries are present +exports.checkDnsSettings = function () { + return Promise.all(TEST_HOSTS.map(hostname => { + return new Promise((resolve, reject) => { + dns.lookup(hostname, (error, ip) => { + if (error || ip !== '127.0.0.1') { + reject(error) + } else { + resolve(true) + } + }) + }) + })) + .catch(() => { + throw new Error(`Expected HOSTS entries of 127.0.0.1 for ${TEST_HOSTS.join()}`) + }) +} + /** * @param configPath {string} *