From 4211f2a8c32b2d507eba61d19ee9307bc8a6a5fa Mon Sep 17 00:00:00 2001 From: Massimo Candela Date: Sun, 28 Jun 2020 20:38:33 +0200 Subject: [PATCH] introduced tests for volume feature --- .gitignore | 1 + .npmignore | 1 + package.json | 2 +- tests/1_config.js | 50 ++++++++++++++++++++++++++-------------- tests/2_alerting.js | 8 +++---- tests/3_uptimemonitor.js | 4 ++-- tests/config.test.yml | 4 +++- 7 files changed, 45 insertions(+), 25 deletions(-) diff --git a/.gitignore b/.gitignore index 62f583d..65b1ccc 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ bgpalerter.pid alertdata/ .npmrc .cache/ +volumetests/ \ No newline at end of file diff --git a/.npmignore b/.npmignore index 62f583d..df7f73b 100644 --- a/.npmignore +++ b/.npmignore @@ -10,3 +10,4 @@ bgpalerter.pid alertdata/ .npmrc .cache/ +volumetests/ diff --git a/package.json b/package.json index 26e52b4..3780565 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ }, "scripts": { "babel": "./node_modules/.bin/babel", - "test": "./node_modules/.bin/mocha --exit tests/*.js --require @babel/register", + "test": "rm -rf volumetests/ && ./node_modules/.bin/mocha --exit tests/*.js --require @babel/register && rm -rf volumetests/", "build": "./build.sh", "watch-and-serve": "nodemon -e yml,js,json,txt --inspect --exec babel-node index.js", "serve": "babel-node index.js", diff --git a/tests/1_config.js b/tests/1_config.js index d38e7ac..9ca10df 100644 --- a/tests/1_config.js +++ b/tests/1_config.js @@ -34,27 +34,22 @@ const chai = require("chai"); const chaiSubset = require('chai-subset'); const readLastLines = require('read-last-lines'); const moment = require('moment'); +const fs = require('fs'); chai.use(chaiSubset); const expect = chai.expect; - +const volume = "volumetests/"; const asyncTimeout = 20000; global.EXTERNAL_VERSION_FOR_TEST = "0.0.1"; -global.EXTERNAL_CONFIG_FILE = "tests/config.test.yml"; +global.EXTERNAL_CONFIG_FILE = volume + "config.test.yml"; -describe("Composition", function() { +// Prepare test environment +if (!fs.existsSync(volume)) { + fs.mkdirSync(volume); +} +fs.copyFileSync("tests/config.test.yml", volume + "config.test.yml"); +fs.copyFileSync("tests/prefixes.test.yml", volume + "prefixes.test.yml"); - describe("Software updates check", function () { - it("new version detected", function (done) { - - const worker = require("../index"); - const pubSub = worker.pubSub; - - pubSub.subscribe("software-update", function (type, message) { - expect(type).to.equal("software-update"); - done(); - }); - }).timeout(asyncTimeout); - }); +describe("Tests", function() { describe("Configuration loader", function () { const worker = require("../index"); @@ -85,6 +80,14 @@ describe("Composition", function() { .property('class') }); + it("volume setting", function () { + expect(config.volume).to.equals(volume); + }); + + it("check for updates setting", function () { + expect(config.checkForUpdatesAtBoot).to.equals(true); + }); + it("loading connectors", function () { expect(config.connectors[0]).to .containSubset({ @@ -185,6 +188,19 @@ describe("Composition", function() { }); + describe("Software updates check", function () { + it("new version detected", function (done) { + + const worker = require("../index"); + const pubSub = worker.pubSub; + + pubSub.subscribe("software-update", function (type, message) { + expect(type).to.equal("software-update"); + done(); + }); + }).timeout(asyncTimeout); + }); + describe("Input loader", function () { const worker = require("../index"); const input = worker.input; @@ -326,7 +342,7 @@ describe("Composition", function() { message: message }); - const file = config.logging.directory + "/error-" + moment().format('YYYY-MM-DD') + ".log"; + const file = volume + config.logging.directory + "/error-" + moment().format('YYYY-MM-DD') + ".log"; readLastLines .read(file, 1) .then((line) => { @@ -347,7 +363,7 @@ describe("Composition", function() { message: message }); - const file = config.logging.directory + "/reports-" + moment().format('YYYY-MM-DD') + ".log"; + const file = volume + config.logging.directory + "/reports-" + moment().format('YYYY-MM-DD') + ".log"; readLastLines .read(file, 1) .then((line) => { diff --git a/tests/2_alerting.js b/tests/2_alerting.js index b377e9f..b9df82b 100644 --- a/tests/2_alerting.js +++ b/tests/2_alerting.js @@ -34,14 +34,14 @@ const chai = require("chai"); const chaiSubset = require('chai-subset'); chai.use(chaiSubset); const expect = chai.expect; - +const volume = "volumetests/"; const asyncTimeout = 20000; global.EXTERNAL_VERSION_FOR_TEST = "0.0.1"; -global.EXTERNAL_CONFIG_FILE = "tests/config.test.yml"; +global.EXTERNAL_CONFIG_FILE = volume + "config.test.yml"; describe("Alerting", function () { - const worker = require("../index"); - const pubSub = worker.pubSub; + var worker = require("../index"); + var pubSub = worker.pubSub; it("visibility reporting", function(done) { diff --git a/tests/3_uptimemonitor.js b/tests/3_uptimemonitor.js index 0a86160..b6c8b44 100644 --- a/tests/3_uptimemonitor.js +++ b/tests/3_uptimemonitor.js @@ -35,10 +35,10 @@ const chaiSubset = require('chai-subset'); const axios = require('axios'); chai.use(chaiSubset); const expect = chai.expect; - +const volume = "volumetests/"; const asyncTimeout = 20000; global.EXTERNAL_VERSION_FOR_TEST = "0.0.1"; -global.EXTERNAL_CONFIG_FILE = "tests/config.test.yml"; +global.EXTERNAL_CONFIG_FILE = volume + "config.test.yml"; describe("Uptime Monitor", function() { diff --git a/tests/config.test.yml b/tests/config.test.yml index aa476f3..e509401 100644 --- a/tests/config.test.yml +++ b/tests/config.test.yml @@ -65,7 +65,7 @@ reports: # The file containing the monitored prefixes. Please see monitored_prefixes_test.yml for an example # This is an array (use new lines and dashes!) monitoredPrefixesFiles: - - tests/prefixes.test.yml + - prefixes.test.yml logging: directory: logs @@ -78,6 +78,8 @@ logging: checkForUpdatesAtBoot: true persistStatus: true +volume: volumetests/ + processMonitors: - file: uptimeApi params: