Как я могу по-другому смоделировать статический файл json для тестов? - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть файл .json, содержащий { apiUrl: '#{placeholder}' }, который я использую для своих развертываний в Octopus.

Мой сервис, использующий файл .json:

import config from '../../configuration/appconfig.json'

function appConfigService() {
    const { apiUrl } = config

    return {
        apiUrl: `${
            apiUrl === '#{placeholder}' ? 'http://localhost:57567' : apiUrl
        }/api/`
    }
}

export default appConfigService

Проблема, с которой я сталкиваюсь, заключается в тестировании обоих сценариев (в одном файле .test).Если я пойду по маршруту

/__mocks__/appconfigMock.js

или по маршруту

jest.mock('../../configuration/appconfig.json', () => ({ apiUrl: 'https://a-legit-url.com' })),

, то значение будет одинаковым для всех тестов.Я не могу издеваться над одним тестом, так как он не работает для импорта.Я не могу снять с одного теста.Единственное решение, которое я могу найти, - разделить тесты на два файла (смешно) и смоделировать их по отдельности.

Я пробовал

jest.resetModules()
jest.unmock('../../configuration/appconfig.json')

в тесте, что я не хочу использовать макет, и он все еще использует макет.

Это просто невозможно для статического файла json?На самом деле кажется, что так и должно быть.

...