Я пытаюсь запустить мои модульные тесты, но, похоже, мой karma.conf.js
неправильно настроен для обработки DOM.
Ошибка, которую я получаю при запуске npm run test
: Uncaught TypeError: Cannot set property 'innerHTML' of null
.
Сейчас я пытаюсь запустить любой тест, затем я хотел бы написать тестдля моей help()
функции. Когда я закомментирую первые две строки src/app.js
, мой тест успешно пройден. Любая помощь приветствуется.
Вот мои настройки:
src / app.js:
var appStatus = document.getElementById('appStatus');
appStatus.innerHTML = 'Loading your app...';
function help() {
console.log('help clicked');
appStatus.innerHTML = '';
}
src / index.html:
<!DOCTYPE html>
<html>
<head>
<title>App</title>
</head>
<body>
<span id="appStatus"></span>
<button onclick="help()">Help</button>
<script src="app.js"></script>
</body>
</html>
test / app.spec.js:
describe('Array', () => {
describe('#indexOf()', () => {
it('should return -1 when the value is not present', () => {
assert.equal([1, 2, 4].indexOf(5), -1);
});
});
});
karma.conf.js:
module.exports = function(config) {
config.set({
frameworks: ['mocha', 'chai'],
files: [
'src/**/*.js',
'test/**/*.js'
],
reporters: ['progress'],
port: 9876, // karma web server port
colors: true,
logLevel: config.LOG_INFO,
browsers: ['ChromeHeadless'],
autoWatch: false,
concurrency: Infinity,
})
}
package.json:
{
"name": "test",
"version": "1.0.0",
"description": "test",
"main": "app.js",
"scripts": {
"test": "karma start --single-run --browsers ChromeHeadless karma.conf.js"
},
"author": "",
"license": "ISC",
"devDependencies": {
"chai": "^4.2.0",
"karma": "^4.3.0",
"karma-chai": "^0.1.0",
"karma-chrome-launcher": "^3.1.0",
"karma-mocha": "^1.3.0",
"mocha": "^6.2.1"
}
}