{"id":28570991,"url":"https://github.com/mhweiner/kizu","last_synced_at":"2025-06-10T18:14:53.339Z","repository":{"id":57264725,"uuid":"423040803","full_name":"mhweiner/kizu","owner":"mhweiner","description":"An easy-to-use, fast, and defensive Typescript/Javascript test runner designed to help you to write simple, readable, and maintainable tests.","archived":false,"fork":false,"pushed_at":"2025-06-08T21:23:30.000Z","size":1093,"stargazers_count":3,"open_issues_count":7,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-08T21:31:00.871Z","etag":null,"topics":["ava","jasmine","jest","jest-testing","jest-tests","mocha","mocha-typescript","mochajs","test","testing","typescript","unit","unit-testing","vitest","vitest-ts"],"latest_commit_sha":null,"homepage":"https://github.com/mhweiner/kizu/blob/main/README.md","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mhweiner.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-10-31T03:10:10.000Z","updated_at":"2025-06-08T21:22:49.000Z","dependencies_parsed_at":"2025-05-15T16:05:49.460Z","dependency_job_id":"e8ff7e42-99bc-43ee-a3c0-964afb180611","html_url":"https://github.com/mhweiner/kizu","commit_stats":null,"previous_names":["mhweiner/kitest","mhweiner/hoare","mhweiner/kizu"],"tags_count":42,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhweiner%2Fkizu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhweiner%2Fkizu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhweiner%2Fkizu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhweiner%2Fkizu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mhweiner","download_url":"https://codeload.github.com/mhweiner/kizu/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhweiner%2Fkizu/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259123990,"owners_count":22808879,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ava","jasmine","jest","jest-testing","jest-tests","mocha","mocha-typescript","mochajs","test","testing","typescript","unit","unit-testing","vitest","vitest-ts"],"created_at":"2025-06-10T18:14:49.024Z","updated_at":"2025-06-10T18:14:53.316Z","avatar_url":"https://github.com/mhweiner.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cpicture\u003e\n    \u003csource srcset=\"docs/kizu-logo-light.svg\" media=\"(prefers-color-scheme: light)\"\u003e\n    \u003csource srcset=\"docs/kizu-logo-dark.svg\" media=\"(prefers-color-scheme: dark)\"\u003e\n    \u003cimg src=\"docs/kizu-logo-light.svg\" alt=\"Logo\"\u003e\n\u003c/picture\u003e\n\n[![build status](https://github.com/mhweiner/kizu/actions/workflows/release.yml/badge.svg)](https://github.com/mhweiner/kizu/actions)\n[![SemVer](https://img.shields.io/badge/SemVer-2.0.0-blue)]()\n[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org)\n[![AutoRel](https://img.shields.io/badge/%F0%9F%9A%80%20AutoRel-2D4DDE)](https://github.com/mhweiner/autorel)\n\nKizu is a fast, minimalist test runner for TypeScript and JavaScript, with a small, easy-to-learn API that lets you focus on your tests — not your tooling.\n\nDesigned to help you write simple, readable, and maintainable tests.\n\n## Features\n\n### **🚀 Fast \u0026 Reliable**\n- Multi-process parallel test runner. Each test file is run in its own process/runtime for performance and isolation benefits. _Use on a multicore machine for best results._\n- Optimized for speed and simplicity.\n- Minimal dependencies.\n\n### **😀 Easy to Use**\n- Very simple functional [assertion API](docs/api.md). No need to learn a DSL or framework.\n- Built-in [powerful diff visualization tool](#visual-diff-tool)\n- Clean, organized output.\n- Failed tests are easy to find, grouped at the end of the output.\n- Errors or unhandled promise rejections are buffered and grouped under the test file in the output. This helps you know where they came from.\n- Clean stack traces with no extra noise.\n\n### **🛡 Defensive**\n- Uncaught errors and unhandled promise rejections will cause the test to fail.\n- Any spec files without tests, or tests without assertions, result in a failed test.\n- Strict and deep equality comparison by default.\n\n### **🔒 Out-of-the-box Typescript support**\n- No special configuration needed, and no plugins to install. \n- Works great with [c8](https://github.com/bcoe/c8) for code coverage.\n- Handles compilation errors gracefully.\n\n## Quick Examples\n\nFor more examples, see the [examples](examples) and [src](src) folders.\n\n```typescript\nimport {test} from 'kizu';\n\n// Basic test\n\nfunction greet(name: string): string {\n  return `hello, ${name}`;\n}\n\ntest('greet()', (assert) =\u003e {\n  assert.equal(hello('world'), 'hello, world');\n});\n\n// Error handling\n\nfunction throwError(): never {\n  throw new Error('oops');\n}\n\ntest('throwError()', (assert) =\u003e {\n  assert.throws(() =\u003e throwError(), /oops/);\n});\n\n// Async test\n\nasync function fetchData(): Promise\u003cstring\u003e {\n  return Promise.resolve('data');\n}\n\ntest('fetchData()', async (assert) =\u003e {\n  const data = await fetchData();\n  assert.equal(data, 'data');\n});\n```\n\n## Table of Contents\n\n- [Getting Started](docs/gettingStarted.md)\n- [Examples](#examples)\n- [API](docs/api.md)\n- [Visual Diff Tool](docs/visualDiff.md)\n- [Best Practices](docs/bestPractices.md)\n- [Inspiration, Philosophy \u0026 Attribution](docs/inspiration.md)\n- [FAQ](docs/faq.md)\n- [Support, Feedback, and Contributions](#support-feedback-and-contributions)\n- [Sponsorship](#sponsorship)\n- [License](LICENSE)\n\n## Getting Started\n\nTo install and get started with `kizu`, see our [Getting Started](docs/gettingStarted.md) guide.\nSee the [examples](examples) and [src](src) folders for more examples.\n\n## Support, feedback, and contributions\n\n- Star this repo if you like it!\n- Submit an [issue](https://github.com/mhweiner/kizu/issues) with your problem, feature request or bug report\n- Issue a PR against `main` and request review. Make sure all tests pass and coverage is good.\n- Write about this project in your blog, tweet about it, or share it with your friends!\n\n## Sponsorship\n\u003cbr\u003e\n\u003cpicture\u003e\n    \u003csource srcset=\"docs/aeroview-white.svg\" media=\"(prefers-color-scheme: dark)\"\u003e\n    \u003csource srcset=\"docs/aeroview-black.svg\" media=\"(prefers-color-scheme: light)\"\u003e\n    \u003cimg src=\"docs/aeroview-black.svg\" alt=\"Logo\" height=\"20\"\u003e\n\u003c/picture\u003e\n\u003cbr\u003e\n\nAeroview is a lightning-fast, developer-friendly, AI-powered logging IDE. Get started for free at [https://aeroview.io](https://aeroview.io).\n\nWant to sponsor this project? [Reach out](mailto:mhweiner234@gmail.com?subject=I%20want%20to%20sponsor%20kizu).\n\n## Related projects\n\n- [cjs-mock](https://github.com/mhweiner/cjs-mock): NodeJS module mocking for CJS (CommonJS) modules for unit testing purposes.\n- [autorel](https://github.com/mhweiner/autorel): Automate semantic releases based on conventional commits. Similar to semantic-release but much simpler.\n- [brek](https://github.com/mhweiner/brek): A powerful yet simple configuration library for Node.js. It’s structured, typed, and designed for dynamic configuration loading, making it perfect for securely managing secrets (e.g., AWS Secrets Manager).\n- [jsout](https://github.com/mhweiner/jsout): A Syslog-compatible, small, and simple logger for Typescript/Javascript projects.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmhweiner%2Fkizu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmhweiner%2Fkizu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmhweiner%2Fkizu/lists"}