Promesas
O uso da sintaxe nativa JavaScript nos testes é uma das principais diferenças entre o Poku e outros executores de testes, o que possibilita seu uso em várias plataformas.
dica
Não é necessário usar await para testes que não são assíncronos.
Aqui estão alguns exemplos de testes sequenciais e concorrentes no mesmo arquivo, além de como realizar uma ação após todos os testes terem sido concluídos:
Executando testes assíncronos no mesmo arquivo em paralelo
import { test, assert, sleep } from 'poku';
test(async () => {
  const atual = 1;
  const esperado = 1;
  await sleep(2000);
  assert.strictEqual(atual, esperado);
});
test(async () => {
  const atual = 2;
  const esperado = 2;
  await sleep(1000);
  assert.strictEqual(atual, esperado);
});
Executando testes assíncronos no mesmo arquivo sequencialmente (aguardando nível superior)
import { test, assert, sleep } from 'poku';
await test(async () => {
  const atual = 1;
  const esperado = 1;
  await sleep(2000);
  assert.strictEqual(atual, esperado);
});
await test(async () => {
  const atual = 2;
  const esperado = 2;
  await sleep(1000);
  assert.strictEqual(atual, esperado);
});
Executando testes assíncronos no mesmo arquivo sequencialmente
import { describe, it, assert, sleep } from 'poku';
describe(async () => {
  await it(async () => {
    const atual = 1;
    const esperado = 1;
    await sleep(2000);
    assert.strictEqual(atual, esperado);
  });
  await it(async () => {
    const atual = 2;
    const esperado = 2;
    await sleep(1000);
    assert.strictEqual(atual, esperado);
  });
});
Aguarando todos os testes serem executados para realizar uma ação posterior
import { describe, it, assert, sleep } from 'poku';
describe(async () => {
  console.log('Imprimindo isso antes de todos os testes 🏃🏻♀️');
  await Promise.all([
    test(async () => {
      const atual = 1;
      const esperado = 1;
      await sleep(2000);
      assert.strictEqual(atual, esperado);
    }),
    test(async () => {
      const atual = 2;
      const esperado = 2;
      await sleep(1000);
      assert.strictEqual(atual, esperado);
    }),
  ]);
  console.log('Imprimindo isso depois de todos os testes 😴');
});
dica
Para múltiplos describe ou test assíncronos, você também pode usar await para executá-los sequencialmente.
Be careful
Ao usar beforeEach and afterEach assíncronos, é necessário usar await mesmo que os auxiliares test ou it não tenham eventos assíncronos.
observação
Se você encontrar algum erro de digitação, sinta-se à vontade para abrir um Pull Request corrigindo-o.