Как сделать Storybook's Storyshots после Vue nextTick?

Я использую Storyshots из Storybook с Vue, и мне это нравится, но теперь я создал несколько настраиваемых директив, которые изменяют DOM на $nextTick, Я бы хотел подождать и сделать снимки после $nextTick так что модель DOM представлена ​​правильно.

Может ли кто-нибудь помочь объяснить, как я могу этого добиться?

Моя установка:

initStoryshots({
  configPath: 'src/_storybook',
  suite: 'web-apps',
  test: multiSnapshotWithOptions(),
});

Благодарность!

1 ответ

Для этого вам нужно настроить Jest для выполнения асинхронных тестов, монтирующих истории. Звучит сложнее, чем есть на самом деле. Это моя конфигурация на storybook.spec.js

import initStoryshots from '@storybook/addon-storyshots';
import { mount } from '@vue/test-utils';

initStoryshots({
  asyncJest: true,
  async test({ story, done }) {
    const wrapper = mount(story.render());

    await wrapper.vm.$nextTick();
    expect(wrapper.element).toMatchSnapshot();
    done();
  }
});
Другие вопросы по тегам