diff --git a/.gitignore b/.gitignore index f7505603fbb01d7340b340e26025036c1faf062b..0c50a6018d28d1c62208dd7be8be8319586332e8 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ node_modules # testing coverage +test-report.xml # production build diff --git a/Dockerfile.test b/Dockerfile.test new file mode 100644 index 0000000000000000000000000000000000000000..0664b5eb29c683ff98bcb9b8182cfdf15d3e1d3e --- /dev/null +++ b/Dockerfile.test @@ -0,0 +1,12 @@ +FROM node:8 + +WORKDIR /app + +COPY ./package-lock.json /app/ +COPY ./package.json /app/ + +RUN npm install + +# COPY . /app/ + +# CMD [ "npm", "start" ] diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000000000000000000000000000000000000..4fa2950cf4842a786631a58853a4156902baa74d --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,28 @@ +pipeline { + agent any + + options { + buildDiscarder(logRotator(numToKeepStr: '60')) + } + + stages { + stage('Test') { + steps { + script { + docker.image('dashboard-testing').inside('') { + sh 'cp -r /app/node_modules ..' + + sh 'npm run test:ci' + sh 'npm run test:coverage' + + junit '**/test-report.xml' + step([ + $class: 'CoberturaPublisher', + coberturaReportFile: '**/coverage/cobertura-coverage.xml' + ]) + } + } + } + } + } +} diff --git a/package-lock.json b/package-lock.json index eef4367f6abde6981b22b1eb0945f8708b1b43d4..721669aa922d57331d953b7cec4b2ebc865e8a06 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "buildings", - "version": "1.14.0", + "version": "1.15.2", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1771,7 +1771,6 @@ "version": "4.0.0-alpha.6", "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.0.0-alpha.6.tgz", "integrity": "sha1-T1TdM6wN6sOyhAe8LffsYIhpycg=", - "dev": true, "requires": { "jquery": "3.2.1", "tether": "1.4.0" @@ -1830,6 +1829,15 @@ } } }, + "bpl": { + "version": "git+https://7f8bbb4b0a383ad905fee5b0f7cbc0c22533b556:x-oauth-basic@github.com/Blocp/bpl.git#044aab932460e8c5d2cc3f993538a3910d42e660", + "requires": { + "bootstrap": "4.0.0-alpha.6", + "copy-dir": "0.3.0", + "jquery": "3.2.1", + "tether": "1.4.0" + } + }, "brace-expansion": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", @@ -2569,6 +2577,14 @@ "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.1.tgz", "integrity": "sha1-Qa1XsbVVlR7BcUEqgZQrHoIA00o=" }, + "copy-dir": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/copy-dir/-/copy-dir-0.3.0.tgz", + "integrity": "sha1-3rLcL6nJKQ7UfIQVWpmabUX1o1g=", + "requires": { + "mkdir-p": "0.0.7" + } + }, "copy-to-clipboard": { "version": "3.0.8", "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.0.8.tgz", @@ -7004,6 +7020,15 @@ "p-map": "1.2.0" } }, + "jest-junit-reporter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jest-junit-reporter/-/jest-junit-reporter-1.1.0.tgz", + "integrity": "sha1-iNYAbsE/gt9AxHiCyGQJic3LFDQ=", + "dev": true, + "requires": { + "xml": "1.0.1" + } + }, "jest-matcher-utils": { "version": "20.0.3", "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-20.0.3.tgz", @@ -7144,8 +7169,7 @@ "jquery": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.2.1.tgz", - "integrity": "sha1-XE2d5lKvbNCncBVKYxu6ErAVx4c=", - "dev": true + "integrity": "sha1-XE2d5lKvbNCncBVKYxu6ErAVx4c=" }, "js-base64": { "version": "2.3.2", @@ -7972,6 +7996,11 @@ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, + "mkdir-p": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mkdir-p/-/mkdir-p-0.0.7.tgz", + "integrity": "sha1-JMXb4m2jqZ7xWKHu+aXC3Z3laDw=" + }, "mkdirp": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", @@ -13814,6 +13843,12 @@ "os-homedir": "1.0.2" } }, + "xml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", + "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=", + "dev": true + }, "xml-char-classes": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/xml-char-classes/-/xml-char-classes-1.0.0.tgz", diff --git a/package.json b/package.json index 82fe15d8833870383c97da24e4a1d4ef9d907956..bf3f1673daed5b7e5cf4423e3d0d1f0b03ad9356 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "buildings", + "name": "Dashboard", "version": "1.15.2", "private": true, "engines": { @@ -41,6 +41,7 @@ "http-proxy-middleware": "0.17.2", "inquirer": "3.0.6", "jest": "20.0.3", + "jest-junit-reporter": "^1.1.0", "json-loader": "0.5.4", "node-sass": "4.6.0", "nodemon": "1.11.0", @@ -102,9 +103,16 @@ "scripts": { "start": "node scripts/start.js", "build": "node scripts/build.js", - "test": "node scripts/test.js --env=jsdom" + "test": "node scripts/test.js --env=jsdom", + "test:ci": "CI=true node scripts/test.js --env=jsdom --testResultsProcessor=jest-junit-reporter", + "test:coverage": "CI=true node scripts/test.js --env=jsdom --coverage" }, "jest": { + "collectCoverageFrom": [ + "src/**/*.{js,jsx}" + ], + "coverageReporters": ["cobertura"], + "coverageDirectory": "coverage", "moduleFileExtensions": [ "jsx", "js", @@ -118,7 +126,8 @@ "/config/polyfills.js" ], "testPathIgnorePatterns": [ - "/(build|docs|node_modules|scripts)/" + "/(build|docs|node_modules|scripts|coverage)/", + "/Dockerfile*" ], "testEnvironment": "node" }, diff --git a/src/components/UtilityLine/__snapshots__/DisaggregationForm.test.js.snap b/src/components/UtilityLine/__snapshots__/DisaggregationForm.test.js.snap index 4245836d1f67567b033dfc60bbb43c7302e39895..7a54e6ac0090b5f21b74ec98d04000a7f3026c3a 100644 --- a/src/components/UtilityLine/__snapshots__/DisaggregationForm.test.js.snap +++ b/src/components/UtilityLine/__snapshots__/DisaggregationForm.test.js.snap @@ -10,6 +10,7 @@ exports[`DisaggregationForm snapshot with form 1`] = `