Jest - Storyshot - getCustomBrowser - как управлять? - PullRequest
0 голосов
/ 03 октября 2019

Возникла проблема, когда я хочу использовать собственный браузер для шутки с шуткой, но мне трудно найти какой-либо пример или документацию по управлению жизненным циклом браузера - это просто упомянуто не случайно. Мой 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 Ответ

0 голосов
/ 03 октября 2019

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

Решением было захватить 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,
});
...