имитировать настраиваемый модуль в реакции с шуткой - PullRequest
0 голосов
/ 06 мая 2020

У меня есть следующий модуль

declare module 'environment' {
  // eslint-disable-next-line import/no-unresolved
  import baseEnv from './environments/base';

  const value: ReturnType<typeof baseEnv>;

  export default value;
}

environment.base. = return env object

...
...
export type Environment = ReturnType<typeof baseEnv>;

затем в служебный файл я импортирую его как

import environment from 'environment';
import { EnvironmentInterface } from '../../environments/base';

мой вопрос в том, как я могу его проверить

Я импортирую этот файл в Служба Inversify. js, если ее справочная служба выглядит так:

import { injectable } from 'inversify';
import environment from 'environment';
import { EnvironmentInterface } from '../../environments/base';
import { IConfig } from './config.interface';

@injectable()
export class ConfigService implements IConfig {
  public config: EnvironmentInterface;

  constructor() {
    this.config = environment;
  }

  get(): EnvironmentInterface {
    return this.config;
  }
}

Я пытался использовать

jest.spyOn ('environment'), но понял, что этот модуль не определен

поэтому, когда я хочу протестировать службу, которая использует эту службу конфигурации, я получил эту проблему

это, например, результат, когда я пытался переместить env в файл инверсии и использовать его в конструкторе, но все же получил это

Cannot find module 'environment' from 'inversify.config.ts'

  1 | import 'reflect-metadata';
  2 | import { Container } from 'inversify';
> 3 | import enviornment from 'environment';
    | ^
  4 | import { ConfigService, IConfig } fro
...