Тестирование с UIKit и Angular - PullRequest
1 голос
/ 14 июня 2019

У меня есть следующий код в угловом компоненте, где declare const UIkit: any; находится вверху файла с другими импортами.

Когда я запускаю свои тесты с помощью jest, я получаю следующую ошибку: ReferenceError: UIkit is not defined при создании компонента с помощью TestBed

Просто интересно, как я могу указать на библиотеку UIkit во время тестов, чтобы она не провалилась.

declare const UIkit: any;

...

  ngOnInit() {
    UIkit.util.on('.sortables', 'moved', (item) => {
      // get order of blocks
      const blocks = Array.from(document.querySelectorAll('.sortable'));
      const newPositions = blocks.slice(0, blocks.length - 1).map(block => {
        return block.getAttribute('data-index');
      });

      // reorder document.blocks to match new order
      const newlyOrderedBlocks = [];
      newPositions.forEach(index => {
        newlyOrderedBlocks.push(this.document.blocks[index]);
      });
      this.document.blocks = newlyOrderedBlocks;
    });
  }

1 Ответ

0 голосов
/ 14 июня 2019

В итоге мне удалось удалить глобальное объявление var и объявить его модулем.

Установка @types/uikit

uikit.ts

declare module 'uikit';

component.ts

import * as UIkit from 'uikit';

...

  ngOnInit() {
    UIkit.util.on('.sortables', 'moved', (item) => {
      // get order of blocks
      const blocks = Array.from(document.querySelectorAll('.sortable'));
      const newPositions = blocks.slice(0, blocks.length - 1).map(block => {
        return block.getAttribute('data-index');
      });

      // reorder document.blocks to match new order
      const newlyOrderedBlocks = [];
      newPositions.forEach(index => {
        newlyOrderedBlocks.push(this.document.blocks[index]);
      });
      this.document.blocks = newlyOrderedBlocks;
    });
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...