Как мне «дождаться» закрытия окна в Spectron? - PullRequest
0 голосов
/ 25 марта 2020

Я работаю над приложением Electron, которое обрабатывает некоторые логи c в модальном windows. Эти windows ждут разрешения асин c действий, а затем самозакрытия. Сейчас я пытаюсь проверить это поведение, используя Spectron и Jest: кажется, что нет методов, чтобы поймать закрытие окна и затем перейти к другим тестам.

В настоящее время мой код

it('doing its job', async () => {
  // awaits and expects that aren't related

  await app.client.click('button[data-role="close"]');
  await new Promise(r => setTimeout(r, 1000));
  expect(await client.getWindowCount()).toBe(1);
});

Это работает, но я нахожу это чрезвычайно анти-паттерном. Интересно, есть ли способы сделать что-то вроде

it('doing its job', async () => {
  // awaits and expects that aren't related

  await app.client.click('button[data-role="close"]');
  await app.client.waitUntilWindowCloses(windowIndex);
  expect(await client.getWindowCount()).toBe(1);
});

Любая помощь приветствуется.

1 Ответ

1 голос
/ 03 апреля 2020
await app.client.waitUntil(async () => (await app.client.getWindowCount()) === 1);
...