Aguardando Portas
Aguarda as portas especificadas se tornarem ativas.
waitForPort
import { waitForPort } from 'poku';
await waitForPort(3000, {
delay: 0,
interval: 100,
timeout: 60000,
host: 'localhost',
});
Options
export type WaitForPortOptions = {
/**
* Intervalo de tentativa em milissegundos
*
* ---
*
* @default 100
*/
interval?: number;
/**
* Tempo limite em milissegundos
*
* ---
*
* @default 60000
*/
timeout?: number;
/**
* Atrasa o início e o fim pelo número definido de milissegundos.
*
* ---
*
* @default 0
*/
delay?: number;
/**
* Host para verificar a porta.
*
* ---
*
* @default "localhost"
*/
host?: string;
};
Exemplos
Aguardando Múltiplas Portas
import { waitForPort } from 'poku';
await Promise.all([
waitForPort(3000),
waitForPort(4000),
waitForPort(5000),
waitForPort(6000),
]);
Aguardando um Serviço de Container na Porta 3000
import { docker, waitForPort } from 'poku';
const compose = docker.compose();
await compose.up();
await waitForPort(3000, { delay: 100 });
const res = await fetch('http://localhost:3000');
/**
* Os testes vêm aqui 🧪
*/
await compose.down();
dica
O Poku expõe um auxiliar sleep
mínimo que apenas espera por milissegundos, além do waitForPort
:
import { sleep } from 'poku';
// Aguarda por 1 segundo
await sleep(1000);