Попытка протестировать выборку с использованием mocha & chai с помощью await - PullRequest
0 голосов
/ 17 июня 2020

Я собираюсь потестить фатч с мокко. Я использую тестовую выборку с mocha и chai , чтобы начать работу, но продолжаю сталкиваться с множеством ошибок.

Вот тестовый код:

var jsdom = require('mocha-jsdom')
global.document = jsdom();
const chai = require( 'chai' ).assert;
const fetch = require("node-fetch");
const chaiHTTP = require("chai-http");
const index = require('../client/js/index');

chai.should();
chai.use(chaiHTTP)

describe('Index', function(){

  it( "renders book data ", async () =>{
        await fetchBooks()
        .then(() => {
          expect(renderBooks).to.have.been.called();
        })
  })
})

Это вызывает следующую ошибку:

    TypeError: Cannot read property 'querySelector' of undefined

Вероятно, селектор не возвращает никаких элементов на этапе, когда скрипт выполняется. Не знаю почему.

//index.js
function fetchBooks(){
  fetch(`https://anapioficeandfire.com/api/books`)
    .then(res => res.json())
    .then(renderBooks)
}

const main = document.querySelector('#main')
function renderBooks(data) {
  data.forEach(book => {
    h2.innerHTML = `<h2>${book.name}</h2>`
  })
}

...