Тест ДОМ Жасмин - PullRequest
       18

Тест ДОМ Жасмин

0 голосов
/ 24 февраля 2019

Я новичок в модульном тесте JS.Я хочу создать тест в жасмине.Я динамически создаю элемент HTML в JS.

 data.map((channel) => {
      const { url, width, height } = channel.thumbnails.medium;
      const { title, customUrl } = channel;
      const { subscriberCount, videoCount, viewCount } = channel.statistics;

      output += `
      <li class="channel-wrraper">
        <a href='${customUrl}' target="_blank">
          <img src='${url}' alt="img-channel" height='${width}' width='${height}' class="channel-img">
        </a>
        <p class="channel-title">${title}</p>
        <div class="channel-statistic">
          <div class="statistic-wrraper">
            <span class="statistic-name">subscribers:</span>
            <span class="subscirber-count">${formatNumber(subscriberCount)}</span>
          </div>
          <div class="statistic-wrraper">
            <span class="statistic-name">videos:</span>
            <span class="video-count">${formatNumber(videoCount)}</span>
          </div>
          <div class="statistic-wrraper">
            <span class="statistic-name">views:</span>
            <span class="veiw-count">${formatNumber(viewCount)}</span>
          </div>
        </div>
      </li>`
    });
    channelsList.innerHTML = output;

Тогда какой-то элемент будет упорядочен.Это функция сортировки:

const list = document.querySelector('.channels-list');

const sortNumber = (selector) => {
  [...list.children]
    .sort((a,b) => a.querySelector(selector).innerText.replace(/,/g, '') - b.querySelector(selector).innerText.replace(/,/g, ''))
    .map(node => list.appendChild(node))
}

Я читал о JSDOM и смотрел учебные пособия, в которых они тестировали DOM, однако эти элементы были в html-файле ...

Я хочу проверить функцию sortNumber Но я не знаю, как начать эту задачу ..

1 Ответ

0 голосов
/ 25 февраля 2019

Вы можете попробовать использовать jsdom-global , тогда у вас будет настройка document.body для вас:

require('jsdom-global')()

// you can now use the DOM
document.body.innerHTML = 'put your html here'

Альтернативой будет использование jest , который поставляется с JSDOM, настроенным по умолчанию

...