Poku

0

๐Ÿท Poku brings human-friendly testing and assertion to Node.js, Bun & Deno at the same time.

Notifications

run
queuing
parallel
isolation
Logo

Poku

Poku can show you how simple testing can be ๐ŸŒฑ

Node.js Version Bun Version Deno Version TypeScript Version
GitHub Workflow Status (with event) GitHub Workflow Status (with event) Coverage NPM Downloads License

Enjoying Poku? Consider giving him a star โญ๏ธ


๐Ÿท Documentationย ย โ€ขย ย ๐Ÿงช Examplesย ย โ€ขย ย ๐Ÿ”ฌ Compare the Most Popular Test Runners


Reasons to Adopt a Poku โ†’

check No configurations
ย ย ย ย ย check Auto detect ESM and CJS
ย ย ย ย ย check Auto detect Typescript files
ย ย ย ย ย check Don't export your server (just run it) ๐Ÿš€

check Less verbose
check High isolation level per file
ย ย ย ย ย check No eval needed ๐Ÿ”
ย ย ย ย ย check No global state
check Parallel and Sequential runs ๐Ÿƒ๐Ÿฝ๐Ÿƒ๐Ÿป
check Easily handle Background Services and Servers, Processes and Ports

check Poku is 100% documented
check Designed to be human-friendly
check Compatible with Coverage tools
check 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

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 ๐Ÿš€

npx poku
bun poku
deno run npm:poku

That's it ๐ŸŽ‰


Available Methods

Essentials

  • Test
  • Background Services
  • Processes
    • kill (terminate Ports, Port Ranges and PIDs)
    • getPIDs (get all processes IDs using ports and port ranges)

Helpers

See the complete documentation.


Overview

poku

SequentialConcurrent

See the complete poku's documentation.


assert

  • ๐Ÿ’š Use it exactly as it's for Node.js
  • ๐Ÿท Node.js, Bun and Deno compatibility
Using pokuUsing node

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.


Community

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

Contributors


Author

wellwelwel
@wellwelwel