Skip to content

Lojhan/poku

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

965 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Poku's Logo

Poku

Enjoying Poku? Give him a star to show your support 🌟

NPM Version NPM Downloads Coverage
GitHub Workflow Status (Linux) GitHub Workflow Status (OSX) GitHub Workflow Status (Windows)


🐷 WebsiteΒ Β β€’Β Β πŸ“˜ DocumentationΒ Β β€’Β Β πŸ§ͺ ExamplesΒ Β β€’Β Β πŸ§‘πŸ»β€πŸŽ“ Tutorials


Why does Poku exist?

πŸ’‘ Poku is a cross-platform test runner that brings the JavaScript essence back to testing.

check High isolation level per file
check Performant and lightweight
check Auto detect ESM, CJS, and TypeScript files
check Run the same test suite for Node.js, Bun, and Deno
check Easily handle servers, processes, ports, and even containers ✨


Quickstart

check Install

# Node.js
npm i -D poku
# TypeScript (Node.js)
npm i -D poku tsx
# Bun
bun add -d poku
# Deno (optional)
deno add npm:poku

check Test

test/file.test.mjs
import { assert } from 'poku';

assert(true, 'Poku will describe it 🐷');

check Run

Node.js (and TypeScript)
Bun
Deno
npx poku
bun poku
deno run npm:poku

Features

check Essentials

poku πŸ§ͺ Test runner
assert β€’ strict πŸ”¬ Test assertion (Node.js familiar API)

check Helpers

test β€’ describe β€’ it πŸ€ΉπŸ»β€β™€οΈ Organize, group, and isolate tests
envFile βš™οΈ Process an environment file (out-of-box)
beforeEach β€’ afterEach πŸƒ Hooks for test setup and teardown
startScript β€’ startService 🌐 Run package.json scripts and files in background
docker 🐳 Build, start, compose, stop, remove, and test containers
kill πŸ”Œ Terminate ports, port ranges, and PIDs
waitForPort 😴 Wait for specified ports to become active
waitForExpectedResult πŸ₯± Retry until an expected result or times out
skip ⏭️ Skip tests when necessary
only 🌌 Debug tests by enabling selective runs

check Common Options

coverage β˜”οΈ Enable coverage collection using a coverage plugin
config βš™οΈ Customize your Poku options in a config file
watch 🍿 Watch for changes and re-run related test files
debug πŸ•΅πŸ» Shows all logs

and much more πŸ‘‡πŸ»


Documentation and Examples

To see the detailed documentation, please visit the Documentation and Examples sections in the Poku's website. Poku also offers mini-lessons for different users needs in the Quick Tutorials section.


Common Issues (FAQ)


Quick Comparisons

Performance

Poku is continuously tested to ensure the following average expectations for basic usage:

  • ~5.3x faster than Jest (v30.4.2)
  • ~4.5x faster than Vitest (v4.1.6)
  • You can see how the tests are run and compared in the benchmark directory.

Installation Size

Install Size

Poku size ensures cost-saving CI for services that charge for storage and usage.


Security Policy

Please check the SECURITY.md.


Contributing

See the Contributing Guide and please follow our Code of Conduct πŸš€


Acknowledgements

Contributors

My thanks to everyone who has dedicated their time and effort to improving Poku.

Contributors

Sponsors

Really thanks to everyone who has supported and keeps supporting my work.

Also for the private ones, who don't appear here πŸ•΅

Sponsors


License

Poku is under the MIT License.
Copyright Β© 2024-present Weslley AraΓΊjo and contributors.

About

🐷 Poku makes testing easy for Node.js, Bun, Deno, and you at the same time.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 99.5%
  • Shell 0.5%