Топор ios дважды в сборнике рассказов - PullRequest
0 голосов
/ 25 мая 2020

У меня есть несколько компонентов, использующих вызовы Ax ios, я пытаюсь «заглушить» эти функции, однако в сборнике рассказов я получаю следующую ошибку «Попытка обернуть get, который уже упакован».

Интересно, есть ли способ определить несколько раз заглушку, потому что я пытался использовать sinon.reset () в конце каждого compXX.stories. js, но это не работает.

Вот часть кода:

comp123.stories. js

import VueCustomElement from 'vue-custom-element';
import Vue from 'vue';
import sinon from 'sinon';
import axios from 'axios';
import * as rawJSON from './123-response.json';
import comp123 from 'comp123';
Vue.use(VueCustomElement);

const aStub = sinon.stub(axios, 'get').resolves(Promise.resolve(
    rawJSON.default
));

export default {
  title: '123 component',
  component: comp123,
  decorators: [withA11y],
};

export const Base = () => ({
  components: {comp123},
  template: `<div class="comp123"> ...component123
  </div>
  `,
});

comp345.sories. js

import VueCustomElement from 'vue-custom-element';
import Vue from 'vue';
import sinon from 'sinon';
import axios from 'axios';
import * as 345response from './345-response.json';
import comp345 from 'comp345';
Vue.use(VueCustomElement);

    const aStub = sinon.stub(axios, 'get').resolves(Promise.resolve(
        345response.default
    ));

    export default {
      title: '345 component',
      component: comp345,
      decorators: [withA11y],
    };

    export const Base = () => ({
      components: {comp345},
      template: `<div class="comp345"> ...component345
      </div>
      `,
    });

Ответы [ 2 ]

1 голос
/ 09 июня 2020

Партнер решил эту проблему, добавив промежуточное ПО. js файл в папку .storybook, поэтому мы не имитируем данные, в этом случае мы получаем фактические данные с "локального сервера" и могут быть изменены в зависимости от на сервере, на котором вы находитесь.

PD: Я использую AEM. Сервер должен быть включен и авторизован.

    const { createProxyMiddleware } = require('http-proxy-middleware');

   module.exports = function expressMiddleware (app) {
   app.use('/services', createProxyMiddleware({
     target: 'http://localhost:4502/services',
     changeOrigin: true,
     pathRewrite: {
      '^/services': '',
     },
  }))
0 голосов
/ 28 мая 2020

Для ошибки «Попытка обернуть уже упакованный get» нужно проверить this . Дело в том, что вам нужно восстановить, а не сбросить, если вы хотите снова заглушить тот же метод, с или без песочница .

Для ax ios stub / mock: обычно я использую ax ios -mock-adapter , который, возможно, больше подходит для вашего случая.

...