Как настроить конфигурацию кармы, чтобы включить DOM? - PullRequest
0 голосов
/ 04 октября 2019

Я пытаюсь запустить мои модульные тесты, но, похоже, мой 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"
  }
}
...