JSPM

  • Created
  • Published
  • Downloads 5293
  • Score
    100M100P100Q159142F
  • License MIT

๐Ÿท Poku makes testing easy for Node.js, Bun, Deno, and you at the same time.

Package Exports

  • poku
  • poku/lib/modules/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (poku) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Logo

Poku

Enjoying Poku? Give him a star to show your support ๐ŸŒŸ

NPM Downloads Coverage License
GitHub Workflow Status (with event) GitHub Workflow Status (with event) GitHub Workflow Status (with event)


Why does Poku exist?

๐Ÿ’ก Poku makes testing easy and brings the native JavaScript syntax back to tests, letting you to write tests intuitively โ€” just like in real JavaScript code.

check No configurations
     check Auto detect ESM, CJS, and TypeScript files
     check Run the same test suite for Node.js, Bun and Deno

check Easier and Less Verbose
     check Node.js familiar API
     check Instantly re-run related tests in watch mode
     check Run CJS (CommonJS) files directly with Deno
     check Easily handle containers, servers, services, processes, and ports

check Safety and Reliability
     check High isolation level per file
     check Performant and lightweight
     check Compatible with coverage tools


Quickstart

Install

Node.js
TypeScript + Node.js
Bun
Deno
npm i -D poku
npm i -D poku tsx
bun add -d poku
deno add npm:poku

Test

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

assert(true, 'Poku will describe it ๐Ÿท');

Run

Node.js (and TypeScript)
Bun
Deno
npx poku
bunx poku
deno run npm:poku
  • That's it ๐ŸŽ‰

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


Available Methods

Essentials

Helpers

  • test, describe and it (organize, group, and isolate tests)
  • watch (watch for changes and re-run related test files)
  • beforeEach and afterEach (hooks for test setup and teardown)
  • docker (build, start, compose, stop, remove, and test containers)
  • startScript (run package.json scripts in background)
  • startService (run files in background)
  • kill (terminate ports, port ranges, and PIDs)
  • waitForPort (wait for specified ports to become active)
  • waitForExpectedResult (retry until an expected result or times out)
  • getPIDs (debug processes IDs using ports and port ranges)
  • and much more ๐Ÿ‘‡๐Ÿป

Documentation and Examples

To see the detailed documentation, please visit the Documentation and Examples sections in the Poku's website.


Contributing

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


Security Policy

GitHub Workflow Status (with event)

Please check the SECURITY.md.


Quick Comparisons

Performance

Poku is continuously tested to ensure the following expectations:

  • ~4x faster than Jest (v29.7.0)
  • ~3x faster than Vitest (v1.6.0)
  • ~1x faster than Mocha (v10.4.0) + Chai (v5.1.1)

You can see how the tests are run and compared in the benchmark directory.


Installation Size

Install Size

Poku size is highly significant in development to ensure cost-saving CI that require servers that charge for storage and usage.


Limitations

  • Although it has no external dependencies, Poku is not all-in-one, so it doesn't have features such as mocks, spies, coverage reports, etc., where you can use your favorite packages or native solutions.
  • Poku community is gradually building up.

Acknowledgements

Contributors

Contributors


License

Poku is under the MIT License.