@ch-aqwer

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

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

Нужно это для теста:

jest.spyOn(api, 'getRequest').mockImplementation(() => ({
...

В spyOn нужно передать объект и его метод, соответственно если просто делать дефолтный импорт ничего не работает.
Сейчас в api делаю два обычных экспорта, один из которых лишний ... это надо переписать.
Или как я могу еще получить этот объект?
  • Вопрос задан
  • 98 просмотров
Решения вопроса 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' экспортируется объект, то Владлен Хеллсайт уже ответил на ваш вопрос
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы