Skip to content
Snippets Groups Projects
Commit 218580e9 authored by Reiter, Christoph's avatar Reiter, Christoph :snake:
Browse files

Add unit test support

parent d87aea9f
No related branches found
No related tags found
No related merge requests found
dist
node_modules
.idea
npm-debug.log
package-lock.json
image: debian:buster
before_script:
- apt update
- apt install -y git
- "sed -i 's|git@gitlab.tugraz.at:VPU|../..|g' .gitmodules"
- git submodule sync
- git submodule update --init
stages:
- test
test:
stage: test
script:
- apt update
- apt install -y npm chromium
- npm install
- npm test
// Trick to use the auto-downloaded puppeteer chrome binary
process.env.CHROME_BIN = require('puppeteer').executablePath();
module.exports = function(config) {
config.set({
basePath: 'dist',
frameworks: ['mocha', 'chai'],
files: [
'./bundle.js',
{pattern: './**/*', included: false, watched: true, served: true},
],
autoWatch: true,
browsers: ['ChromeHeadlessNoSandbox'],
customLaunchers: {
ChromeHeadlessNoSandbox: {
base: 'ChromeHeadless',
flags: ['--no-sandbox']
}
},
singleRun: false,
logLevel: config.LOG_ERROR
});
}
{
"name": "vpu-common",
"version": "1.0.1"
"version": "1.0.1",
"devDependencies": {
"karma": "^4.2.0",
"karma-chai": "^0.1.0",
"karma-chrome-launcher": "^3.0.0",
"karma-mocha": "^1.3.0",
"node-sass": "^4.12.0",
"puppeteer": "^1.15.0",
"mocha": "^6.2.0",
"chai": "^4.2.0",
"rollup": "^1.11.3",
"rollup-plugin-commonjs": "^9.3.4",
"rollup-plugin-node-resolve": "^4.2.3",
"rollup-plugin-replace": "^2.2.0",
"rollup-plugin-multi-entry": "^2.1.0"
},
"scripts": {
"clean": "rm dist/*",
"build": "npm run build-local",
"build-test": "rollup -c --environment BUILD:test",
"test": "npm run build-test && karma start --singleRun"
}
}
import resolve from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';
import replace from "rollup-plugin-replace";
import multiEntry from 'rollup-plugin-multi-entry';
const build = (typeof process.env.BUILD !== 'undefined') ? process.env.BUILD : 'local';
console.log("build: " + build);
export default {
input: 'test/**/*.js',
output: {
file: 'dist/bundle.js',
format: 'esm'
},
plugins: [
multiEntry(),
resolve(),
commonjs(),
replace({
"process.env.BUILD": '"' + build + '"',
})
]
};
import utils from '../utils';
describe('utils', () => {
it('base64EncodeUnicode', () => {
expect(utils.base64EncodeUnicode('')).to.equal('');
expect(utils.base64EncodeUnicode('foo')).to.equal('Zm9v');
expect(utils.base64EncodeUnicode('äöü')).to.equal('w6TDtsO8');
expect(utils.base64EncodeUnicode('😊')).to.equal('8J+Yig==');
});
it('defineCustomElement', () => {
class SomeElement extends HTMLElement {
constructor() {
super();
this.foo = 42;
}
};
var res = utils.defineCustomElement("test-some-element", SomeElement);
expect(res).to.equal(true);
node = document.createElement('test-some-element');
expect(node.foo).to.equal(42);
});
});
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment