Reasons to Adopt a Poku โ
No configurations
ย ย ย ย ย
Auto detect ESM and CJS
ย ย ย ย ย
Auto detect Typescript files
ย ย ย ย ย
Don't export your server (just run it) ๐
Less verbose
High isolation level per file
ย ย ย ย ย
No eval needed ๐
ย ย ย ย ย
No global state
Parallel and Sequential runs ๐๐ฝ๐๐ป
Poku is 100% documented
Designed to be human-friendly
Compatible with Coverage tools
Node.js, Bun and Deno compatibility ๐ฉต
โจ You are free to work with the packages you desire
๐ง๐ปโ๐ You don't need to learn it all at once to get started
๐ง๐ปโ๐ฌ Poku adapts to your test, not the other way around
โ Zero external dependencies (that means lightweight)
๐ด๐ผ Poku doesn't restrict you from testing in legacy environments
Quickstart
Install ๐ฆ
![Install Size](https://packagephobia.com/badge?p=poku)
![](https://raw.githubusercontent.com/wellwelwel/poku/main/.github/assets/readme/node-js.svg) | ![](https://raw.githubusercontent.com/wellwelwel/poku/main/.github/assets/readme/typescript.svg) | ![](https://raw.githubusercontent.com/wellwelwel/poku/main/.github/assets/readme/bun.svg) | ![](https://raw.githubusercontent.com/wellwelwel/poku/main/.github/assets/readme/deno.svg) |
npm i -D poku
|
npm i -D poku tsx
|
bun add -d poku
|
deno add npm:poku
|
Test it ๐ฌ
test/file.test.mjs
|
import { assert } from 'poku';
assert(true, 'Poku will describe it ๐ท');
|
- Change from
.mjs
to .js
by defining "type": "module"
in your package.json. - Note that these examples use ESM, but you can use CJS as well.
Run it ๐
![](https://raw.githubusercontent.com/wellwelwel/poku/main/.github/assets/readme/node-js.svg) | ![](https://raw.githubusercontent.com/wellwelwel/poku/main/.github/assets/readme/bun.svg) | ![](https://raw.githubusercontent.com/wellwelwel/poku/main/.github/assets/readme/deno.svg) |
npx poku
|
bun poku
|
deno run npm:poku
|
That's it ๐
Available Methods
Essentials
Helpers
See the complete documentation.
Overview
poku
Sequential | Concurrent |
---|
![](https://raw.githubusercontent.com/wellwelwel/poku/main/.github/assets/readme/sequential.png) | ![](https://raw.githubusercontent.com/wellwelwel/poku/main/.github/assets/readme/parallel.png) |
See the complete poku
's documentation.
assert
- ๐ Use it exactly as it's for Node.js
- ๐ท Node.js, Bun and Deno compatibility
Using poku | Using node |
---|
![](https://raw.githubusercontent.com/wellwelwel/poku/main/.github/assets/readme/assert-poku.png) | ![](https://raw.githubusercontent.com/wellwelwel/poku/main/.github/assets/readme/assert-node.png) |
See the complete assert
's documentation.
Documentation and Examples
To see the detailed documentation, please visit the Documentation and Examples sections in the Poku's website.
I'm continuously working to improve Poku. If you've got something interesting to share, feel free to submit a Pull Request. If you notice something wrong, I'd appreciate if you'd open an Issue.
Contributing
Please check the CONTRIBUTING.md for instructions ๐
Philosophy
Please check the Philosophy section from Documentation.
License
Poku is under the MIT License.
Security Policy
Please check the SECURITY.md and the section Is Poku Safe? from Documentation.
Limitations
- Poku is still a bit lonely, without an active community around him, but we can change it ๐ค
- Each file generates a sub-process during its execution. This can be reflected in projects with an extremely high volume of test files when run in parallel.
Acknowledgements
![Contributors](https://img.shields.io/github/contributors/wellwelwel/poku)
![Contributors](https://opencollective.com/poku/contributors.svg?width=890&button=false)
Author
![wellwelwel](https://avatars.githubusercontent.com/u/46850407)
@wellwelwel
|