@painda/testing
v0.1.2
Published
Test utilities for PaindaProtocol
Maintainers
Readme
@painda/testing
Test utilities for PaindaProtocol applications.
Spin up test server + client pairs, wait for messages, collect results — all in a few lines.
Part of the PaindaProtocol ecosystem.
Installation
npm install --save-dev @painda/testing @painda/coreQuick Start
import { createTestEnv, waitForMessage } from '@painda/testing';
const { server, client, cleanup } = await createTestEnv();
server.on('connection', (socket) => {
socket.on('message', (msg) => {
socket.emit('echo', msg.payload);
});
});
client.emit('ping', 'hello');
const response = await waitForMessage(client, 'echo');
console.log(response.payload); // "hello"
cleanup();API
createTestEnv(options?)
Creates a server + connected client on a random port. Returns { server, client, port, cleanup }.
waitForMessage(client, type, timeout?)
Wait for a specific message type. Rejects after timeout (default 5s).
collectMessages(client, count, timeout?)
Collect N messages from a client.
createTestClients(port, count)
Create multiple connected clients for load testing.
waitFor(condition, timeout?, interval?)
Poll a condition until it's true.
ppAssert(condition, message)
Assert with descriptive error message.
License
MIT
