From 91d6e436d4e9d625081cab843e0cab15c9cda692 Mon Sep 17 00:00:00 2001 From: Franck R Date: Thu, 3 Feb 2022 16:58:53 +1100 Subject: [PATCH] Do not run bootstrap live data test as part of normal CI (#468) --- karma.conf.js | 4 +++- package-lock.json | 13 +++++++++++ package.json | 1 + src/lib/discovery/dns.spec.ts | 8 ++++++- src/lib/waku.node.spec.ts | 35 ---------------------------- src/lib/waku.spec.ts | 44 +++++++++++++++++++++++++++++++++++ 6 files changed, 68 insertions(+), 37 deletions(-) create mode 100644 src/lib/waku.spec.ts diff --git a/karma.conf.js b/karma.conf.js index 23d97e4116..865f28f330 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -5,12 +5,14 @@ module.exports = function (config) { frameworks: ['mocha', 'karma-typescript'], files: ['src/lib/**/*.ts', 'src/proto/**/*.ts'], preprocessors: { - '**/*.ts': ['karma-typescript'], + '**/*.ts': ['karma-typescript', 'env'], }, + envPreprocessor: ['CI'], plugins: [ require('karma-mocha'), require('karma-typescript'), require('karma-chrome-launcher'), + require('karma-env-preprocessor'), ], reporters: ['progress', 'karma-typescript'], browsers: ['ChromeHeadless'], diff --git a/package-lock.json b/package-lock.json index d46021d46e..aba01c410a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -60,6 +60,7 @@ "gh-pages": "^3.2.3", "karma": "^6.3.12", "karma-chrome-launcher": "^3.1.0", + "karma-env-preprocessor": "^0.1.1", "karma-mocha": "^2.0.1", "karma-typescript": "^5.5.3", "mocha": "^9.1.3", @@ -9984,6 +9985,12 @@ "which": "bin/which" } }, + "node_modules/karma-env-preprocessor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/karma-env-preprocessor/-/karma-env-preprocessor-0.1.1.tgz", + "integrity": "sha1-u+jIfVnADtt2BwvTwxtLOdXcfhU=", + "dev": true + }, "node_modules/karma-mocha": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/karma-mocha/-/karma-mocha-2.0.1.tgz", @@ -25507,6 +25514,12 @@ } } }, + "karma-env-preprocessor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/karma-env-preprocessor/-/karma-env-preprocessor-0.1.1.tgz", + "integrity": "sha1-u+jIfVnADtt2BwvTwxtLOdXcfhU=", + "dev": true + }, "karma-mocha": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/karma-mocha/-/karma-mocha-2.0.1.tgz", diff --git a/package.json b/package.json index da27b39219..af284a215a 100644 --- a/package.json +++ b/package.json @@ -107,6 +107,7 @@ "gh-pages": "^3.2.3", "karma": "^6.3.12", "karma-chrome-launcher": "^3.1.0", + "karma-env-preprocessor": "^0.1.1", "karma-mocha": "^2.0.1", "karma-typescript": "^5.5.3", "mocha": "^9.1.3", diff --git a/src/lib/discovery/dns.spec.ts b/src/lib/discovery/dns.spec.ts index ef3eda5283..f05a6dea1a 100644 --- a/src/lib/discovery/dns.spec.ts +++ b/src/lib/discovery/dns.spec.ts @@ -3,6 +3,12 @@ import { expect } from 'chai'; import { DnsClient, DnsNodeDiscovery } from './dns'; import testData from './testdata.json'; +declare global { + interface Window { + __env__?: any; + } +} + const mockData = testData.dns; const host = 'nodes.example.org'; @@ -176,7 +182,7 @@ describe('DNS Node Discovery [live data]', function () { const maxQuantity = 3; before(function () { - if (process.env.CI) { + if (process.env.CI || window.__env__.CI) { this.skip(); } }); diff --git a/src/lib/waku.node.spec.ts b/src/lib/waku.node.spec.ts index e1872683fb..92d998f4a2 100644 --- a/src/lib/waku.node.spec.ts +++ b/src/lib/waku.node.spec.ts @@ -44,41 +44,6 @@ describe('Waku Dial [node only]', function () { }); }); - describe('Bootstrap [live data]', function () { - let waku: Waku; - let nimWaku: NimWaku; - - afterEach(async function () { - !!nimWaku && nimWaku.stop(); - !!waku && waku.stop().catch((e) => console.log('Waku failed to stop', e)); - }); - - before(function () { - if (process.env.CI) { - this.skip(); - } - }); - - it('Enabling default [live data]', async function () { - // This test depends on fleets.status.im being online. - // This dependence must be removed once DNS discovery is implemented - this.timeout(20_000); - - waku = await Waku.create({ - staticNoiseKey: NOISE_KEY_1, - bootstrap: { default: true }, - }); - - const connectedPeerID: PeerId = await new Promise((resolve) => { - waku.libp2p.connectionManager.on('peer:connect', (connection) => { - resolve(connection.remotePeer); - }); - }); - - expect(connectedPeerID).to.not.be.undefined; - }); - }); - describe('Bootstrap', function () { let waku: Waku; let nimWaku: NimWaku; diff --git a/src/lib/waku.spec.ts b/src/lib/waku.spec.ts new file mode 100644 index 0000000000..d4ed7cc7b7 --- /dev/null +++ b/src/lib/waku.spec.ts @@ -0,0 +1,44 @@ +import { expect } from 'chai'; +import PeerId from 'peer-id'; + +import { Waku } from './waku'; + +declare global { + interface Window { + __env__?: any; + } +} + +describe('Waku Dial', function () { + describe('Bootstrap [live data]', function () { + let waku: Waku; + + afterEach(function () { + !!waku && waku.stop().catch((e) => console.log('Waku failed to stop', e)); + }); + + before(function () { + if (process.env.CI || window.__env__.CI) { + this.skip(); + } + }); + + it('Enabling default [live data]', async function () { + // This test depends on fleets.status.im being online. + // This dependence must be removed once DNS discovery is implemented + this.timeout(20_000); + + waku = await Waku.create({ + bootstrap: { default: true }, + }); + + const connectedPeerID: PeerId = await new Promise((resolve) => { + waku.libp2p.connectionManager.on('peer:connect', (connection) => { + resolve(connection.remotePeer); + }); + }); + + expect(connectedPeerID).to.not.be.undefined; + }); + }); +});