{"id":23910524,"url":"https://github.com/adamwong246/testeranto","last_synced_at":"2025-04-11T12:13:49.327Z","repository":{"id":62917202,"uuid":"563057566","full_name":"adamwong246/testeranto","owner":"adamwong246","description":"the AI powered BDD test framework for typescript projects","archived":false,"fork":false,"pushed_at":"2025-04-09T18:02:21.000Z","size":29506,"stargazers_count":12,"open_issues_count":3,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-09T19:21:34.164Z","etag":null,"topics":["aider","atdd","bdd","esbuild","tdd","typescript"],"latest_commit_sha":null,"homepage":"https://chromapdx.github.io/kokomoBay/testeranto/index.html","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adamwong246.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2022-11-07T20:22:24.000Z","updated_at":"2025-04-09T18:02:26.000Z","dependencies_parsed_at":"2024-10-20T12:11:44.138Z","dependency_job_id":null,"html_url":"https://github.com/adamwong246/testeranto","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adamwong246%2Ftesteranto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adamwong246%2Ftesteranto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adamwong246%2Ftesteranto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adamwong246%2Ftesteranto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adamwong246","download_url":"https://codeload.github.com/adamwong246/testeranto/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248102263,"owners_count":21048149,"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":["aider","atdd","bdd","esbuild","tdd","typescript"],"created_at":"2025-01-05T07:17:02.749Z","updated_at":"2025-04-11T12:13:49.317Z","avatar_url":"https://github.com/adamwong246.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# testeranto\n\n## the AI powered BDD test framework for typescript projects\n\n🚧 WARNING: Testeranto is still under development and is not ready for production yet. 🚧\n\ndemo video: [youtube](https://www.youtube.com/embed/WvU5xMqGi6Q)\n\nsource: [github.com/adamwong246/testeranto](https://github.com/adamwong246/testeranto)\n\nnpm: [npmjs.com/package/testeranto](https://www.npmjs.com/package/testeranto)\n\ndev: [github.dev/adamwong246/testeranto](https://github.dev/adamwong246/testeranto)\n\nexample test report: [chromapdx.github.io/kokomoBay](https://chromapdx.github.io/kokomoBay/testeranto/index.html)\n\nexample repo: [kokomo bay](https://github.com/ChromaPDX/kokomoBay)\n\n## What is testeranto?\n\n- Testeranto produces test results which can be fed to Aider.ai to automatically fix failing tests.\n- Testeranto tests are specified in a strongly-typed gherkin-like syntax. Rather than testing your code directly, Testeranto requires you wrap your code with a semantic interface which is based on TS type signatures.\n- Testeranto can be run in the frontend or the backend, or both.\n- Testeranto can be used to test anything that can be bundled with esbuild.\n- Testeranto is _reasonably_ efficient. It is less performant than other similar js testing libraries.\n\n## tech of note\n\n- esm - Testeranto uses modern js\n- typescript - tests are functions with type parameters\n- puppeteer - provides access to both node and chrome runtimes\n- esbuild - used to quickly generate test bundles\n- aider - AI to automatically fix broken tests\n\n## Do's and Don't\n\nWhen writing your test, be careful when using platform specific features, like \"fs\" on node, or \"window\" in the browser. If you need to write to a file, or to log information, use the `utils`. Instead of platform specific libraries, like node's \"assert\", use a cross-platform alternative like \"chai\".\n\n## Platforms\n\nTesteranto runs tests in multiple runtimes. You can run the same test (more or less) in multiple contexts. Depending on your test subject, not all may be applicable\n\n1. Node - the test is run in node v8 via fork.\n2. Web - the test is run in chrome, in a page. If you code relies upon `window` or `document`, you should use this style.\n3. Pure - the test is dynamically imported into the main thread. It will not have access to IO (console.log, etc) but it is more performant.\n4. WebWorker - the test is tested in a web worker, in the browser, but not in a page.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadamwong246%2Ftesteranto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadamwong246%2Ftesteranto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadamwong246%2Ftesteranto/lists"}