Как смоделировать navigator.language для машинного теста машинописи - PullRequest
0 голосов
/ 25 января 2019

Как мне смоделировать файл navigator.language, который будет определен в модульном тесте?

код, указанный ниже, возвращает

ReferenceError: навигатор не определен

language-service.ts

import { injectable } from "inversify";

@injectable()
export class LanguageService  {
    public getBrowserLanguage(): string {
        return navigator.language.split("-")[0];
    }
}

language-service.spec.ts

// import stuff

    describe('Language Service tests', () => {
      it('should return de', () => {
        const language_service = new LanguageService();
        expect(language_service.getBrowserLanguage()).to.equal("de");
      });
    });

Это звучит как основная задача, но это не так, потому что даже если я попытаюсь определитьнавигатор вручную на объекте окна, машинопись выдает ошибку о том, что навигатор доступен только для чтения.

1 Ответ

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

1 - установить пакет jsdom

npm install jsdom jsdom-global --save-dev

2 - соответственно изменить свои юнит-тесты

{
  "scripts": {
    "test": "mocha -r ts-node/register -r jsdom-global/register src/**/*.spec.ts"
  }
}
...