Poku
๐ท Poku makes testing easy for Node.js, Bun, Deno, and you at the same time.
Install / Use
/learn @wellwelwel/PokuREADME
Poku
Enjoying Poku? Give him a star to show your support ๐
๐ท Website<span>ย ย โขย ย </span>๐ Documentation<span>ย ย โขย ย </span>๐งช Examples<span>ย ย โขย ย </span>๐ง๐ปโ๐ Tutorials
</div>Why does Poku exist?
๐ก Poku is a cross-platform test runner that brings the JavaScript essence back to testing.
</span><img width="16" height="16" alt="check" src="https://raw.githubusercontent.com/wellwelwel/poku/main/.github/assets/readme/check.svg"> High isolation level per file<br /> </span><img width="16" height="16" alt="check" src="https://raw.githubusercontent.com/wellwelwel/poku/main/.github/assets/readme/check.svg"> Performant and lightweight<br /> <img width="16" height="16" alt="check" src="https://raw.githubusercontent.com/wellwelwel/poku/main/.github/assets/readme/check.svg"> Auto detect ESM, CJS, and TypeScript files<br /> <img width="16" height="16" alt="check" src="https://raw.githubusercontent.com/wellwelwel/poku/main/.github/assets/readme/check.svg"> Run the same test suite for [Node.js][node-version-url], [Bun][bun-version-url], and [Deno][deno-version-url]<br /> <img width="16" height="16" alt="check" src="https://raw.githubusercontent.com/wellwelwel/poku/main/.github/assets/readme/check.svg"> Easily handle servers, processes, ports, and even containers โจ
Quickstart
<img width="16" height="16" alt="check" src="https://raw.githubusercontent.com/wellwelwel/poku/main/.github/assets/readme/check.svg"> Install
<table> <tr> <td width="225"># Node.js
npm i -D poku
</td>
<td width="225">
# TypeScript (Node.js)
npm i -D poku tsx
</td>
<td width="225">
# Bun
bun add -d poku
</td>
<td width="225">
# Deno (optional)
deno add npm:poku
</td>
</tr>
</table>
<img width="16" height="16" alt="check" src="https://raw.githubusercontent.com/wellwelwel/poku/main/.github/assets/readme/check.svg"> Test
<table> <tr> <td> <blockquote>test/file.test.mjs</blockquote> </td> </tr> <tr> <td width="1200">import { assert } from 'poku';
assert(true, 'Poku will describe it ๐ท');
</td>
</tr>
</table>
<img width="16" height="16" alt="check" src="https://raw.githubusercontent.com/wellwelwel/poku/main/.github/assets/readme/check.svg"> Run
<table> <tr> <td><blockquote><i>Node.js (and TypeScript)</i></blockquote></td> <td><blockquote><i>Bun</i></blockquote></td> <td><blockquote><i>Deno</i></blockquote></td> </tr> <tr> <td width="400">npx poku
</td>
<td width="400">
bun poku
</td>
<td width="400">
deno run npm:poku
</td>
</tr>
</table>
Features
<img width="16" height="16" alt="check" src="https://raw.githubusercontent.com/wellwelwel/poku/main/.github/assets/readme/check.svg"> Essentials
<table> <tr> <td width="280"><a href="https://poku.io/docs/category/-poku">poku</a></td> <td width="770">๐งช Test runner.</td> </tr> <tr> <td><a href="https://poku.io/docs/documentation/assert">assert</a></td> <td>๐ Test assertion <i>(<strong>Node.js</strong> familiar <strong>API</strong>)</i>.</td> </tr> <tr> <td><a href="https://poku.io/docs/documentation/assert">strict</a></td> <td>๐ฌ Strict test assertion <i>(<strong>Node.js</strong> familiar <strong>API</strong>)</i>.</td> </tr> </table><img width="16" height="16" alt="check" src="https://raw.githubusercontent.com/wellwelwel/poku/main/.github/assets/readme/check.svg"> Helpers
<table> <tr> <td width="250"><a href="https://poku.io/docs/documentation/helpers/test">test</a> โข <a href="https://poku.io/docs/documentation/helpers/describe">describe</a> โข <a href="https://poku.io/docs/documentation/helpers/it">it</a></td> <td width="800">๐คน๐ปโโ๏ธ Organize, group, and isolate tests.</td> </tr> <tr> <td><a href="https://poku.io/docs/documentation/helpers/env">envFile</a></td> <td>โ๏ธ Process an environment file <i>(out-of-box)</i>.</td> </tr> <tr> <td><a href="https://poku.io/docs/category/-before-and-after-each">beforeEach</a> โข <a href="https://poku.io/docs/category/-before-and-after-each">afterEach</a></td> <td>๐ Hooks for test setup and teardown.</td> </tr> <tr> <td><a href="https://poku.io/docs/documentation/helpers/startScript">startScript</a></td> <td>๐ Run package.json scripts in background.</td> </tr> <tr> <td><a href="https://poku.io/docs/documentation/helpers/startService">startService</a></td> <td>๐ Run files in background.</td> </tr> <tr> <td><a href="https://poku.io/docs/documentation/helpers/containers">docker</a></td> <td>๐ณ Build, start, compose, stop, remove, and test containers.</td> </tr> <tr> <td><a href="https://poku.io/docs/documentation/helpers/processes/kill">kill</a></td> <td>๐ Terminate ports, port ranges, and PIDs.</td> </tr> <tr> <td><a href="https://poku.io/docs/documentation/helpers/processes/wait-for-port">waitForPort</a></td> <td>๐ด Wait for specified ports to become active.</td> </tr> <tr> <td><a href="https://poku.io/docs/documentation/helpers/processes/wait-for-expected-result">waitForExpectedResult</a></td> <td>๐ฅฑ Retry until an expected result or times out.</td> </tr> <tr> <td><a href="https://poku.io/docs/documentation/helpers/skip">skip</a></td> <td>โญ๏ธ Skip tests when necessary.</td> </tr> <tr> <td><a href="https://poku.io/docs/documentation/helpers/only">only</a></td> <td>๐ Debug tests by enabling selective runs.</td> </tr> <tr> <td><a href="https://poku.io/docs/documentation/helpers/processes/get-pids">getPIDs</a></td> <td>๐ต๐ป Debug processes IDs using ports and port ranges.</td> </tr> </table><img width="16" height="16" alt="check" src="https://raw.githubusercontent.com/wellwelwel/poku/main/.github/assets/readme/check.svg"> Common Options
<table> <tr> <td width="280"><a href="https://poku.io/docs/documentation/poku/options/watch">watch</a></td> <td width="770">๐ฟ Watch for changes and re-run related test files.</td> </tr> <tr> <td><a href="https://poku.io/docs/documentation/poku/options/debug">debug</a></td> <td>๐ต๐ป Shows all logs.</td> </tr> <tr> <td><a href="https://poku.io/docs/documentation/poku/config-files">config</a></td> <td>โ๏ธ Customize your Poku options in a config file.</td> </tr> </table>and much more ๐๐ป
Documentation and Examples
To see the detailed documentation, please visit the Documentation and Examples sections in the Poku's website.
Tutorials
Poku offers mini-lessons for different users needs in the Quick Tutorials section.
Common Issues (FAQ)
- Avoiding conflicts in environments with multiple platforms installed.
- Properly running asynchronous tests on the same file.
- Using Poku without installing it on Deno.
- Migrating:
Quick Comparisons
Performance
Poku is continuously tested to ensure the following average expectations for basic usage:
- ~4.6x faster than [*Jest
Related Skills
gh-issues
351.4kFetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]
node-connect
351.4kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
110.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
Writing Hookify Rules
110.7kThis skill should be used when the user asks to "create a hookify rule", "write a hook rule", "configure hookify", "add a hookify rule", or needs guidance on hookify rule syntax and patterns.
