Jest - Storyshot - getCustomBrowser - как управлять?

Возникла проблема, когда я хочу использовать настраиваемый браузер для storyshot с шуткой, но мне сложно найти какой-либо пример или документы об управлении жизненным циклом браузера - это просто упомянуто наугад. Мой initStoryshots выглядит так

initStoryshots({
  suite: 'Image storyshots',
  storyKindRegex: /^((?!.*?skipImageSnapshot).)*$/,
  test: imageSnapshot({
    storybookUrl,
    getMatchOptions,
    getCustomBrowser: async () => {
      let browser = await puppeteer.launch({
        args: [
          '--no-sandbox ',
          '--headless',
          '--disable-setuid-sandbox',
          '--disable-dev-shm-usage',
          '--disable-lcd-text',
        ],
      });

      return browser
    }
  }),
});

Поэтому я не понимаю, где я могу добавить afterAll или какой-либо другой способ получить браузер и .close() Это?

Надеюсь найти здесь руководство. Пожалуйста, дайте мне знать, какие подробности я могу добавить.

1 ответ

Хорошо, решил. Оставить запись для следующего человека:

Решением было захватить testFn, возвращенный imageSnapshot и переопределить afterAll на что.

let browser;

let afterAll = () => {
  if (browser) {
    browser.close();
  }
};

let testFn = imageSnapshot({
  storybookUrl,
  getMatchOptions,
  getCustomBrowser: async () => {
    browser = await puppeteer.launch({
      args: [
        '--no-sandbox ',
        '--headless',
        '--disable-setuid-sandbox',
        '--disable-dev-shm-usage',
        '--disable-lcd-text',
      ],
    });
    return browser;
  },
});

testFn.afterAll = afterAll;

initStoryshots({
  suite: 'Image storyshots',
  storyKindRegex: /^((?!.*?skipImageSnapshot).)*$/,
  test: testFn,
});
Другие вопросы по тегам