@ch-aqwer

Как сделать import всех (*) если есть только один export default?

Добрый день! Скажите пожалуйста как сделать такую запись import * as api from './api';
если в файле api/ только один дефолтный экпорт, менять его нельзя. Просто нужен объект api

Нужно это для теста,
jest.spyOn(api, 'getRequest').mockImplementation(() => ({
...

в spyOn нужно передать объект и его метод, соответственно если просто делать дефолтный импорт ничего не работает.
Сейчас в api делаю два обычных экпорта, один из которых лишний ... это надо переписать.
Или как я могу еще получить этот объект ?
  • Вопрос задан
  • 68 просмотров
Решения вопроса 1
  • 1) Если у вас в './api' экспортируется функция, то как вариант можно сделать так:
    import yourFunc from './api';
    const api = {}
    api.yourFunc = yourFunc

    2) Еще возможен такой вариант, как вы описали
    import * as api from './api';
    тогда в api.default будет ваша функция
    но думаю этот вариант не подходит, так как ключ другой

    3) В './api'
    function yourFunc() {
    
    }
    const api = {}
    api.yourFunc = yourFunc;
    export default api;

    4) В './api'
    function yourFunc() {
    
    }
    export default { yourFunc  }

    В файле, где тест:
    import * as api from './api'
    сonsole.log(api.default) выведит ваш объект с методом yourFunc

    5) Если из './api' экспортируется объект, то Владлен Хеллсайт уже ответил на ваш вопрос
    Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы