Как смоделировать функцию "window.screen.orientation.lock", используя Jest? - PullRequest
1 голос
/ 29 апреля 2019

Мы используем один из плагинов Cordova, чтобы зафиксировать ориентацию нашего гибридного приложения. В AppComponent у нас есть код, который блокирует ориентацию экрана. Для этого мы используем функцию window.screen.orientation.lock . Как я могу издеваться над вышеуказанной функцией, используя Jest?

1 Ответ

0 голосов
/ 30 апреля 2019

По умолчанию Jest обеспечивает среду, подобную браузеру, используя jsdom.

Это - это то, что jsdom реализует для window.screen.

orientation не реализован jsdom, но его можно добавить к window.screen, предоставленному jsdom во время ваших тестов:

code.js

export const func = () => {
  window.screen.orientation.lock();
}

code.test.js

import { func } from './code';

test('func', () => {
  const lock = jest.fn();
  window.screen.orientation = { lock };  // <= add orientation mock to window.screen

  func();

  expect(lock).toHaveBeenCalled();  // Success!
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...