{"id":13769614,"url":"https://github.com/testdeck/testdeck","last_synced_at":"2025-05-15T01:07:51.686Z","repository":{"id":9308506,"uuid":"55495623","full_name":"testdeck/testdeck","owner":"testdeck","description":"Object oriented testing","archived":false,"fork":false,"pushed_at":"2025-01-22T17:32:30.000Z","size":891,"stargazers_count":235,"open_issues_count":7,"forks_count":40,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-05-09T04:01:46.051Z","etag":null,"topics":["decorators","dependency-injection","ioc","jasmine","javascript","jest","mocha","mocha-typescript","oop","parameterised-tests","tdd","tdd-interfaces","testing","testing-tools","typescript"],"latest_commit_sha":null,"homepage":"https://testdeck.github.io/docs/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/testdeck.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2016-04-05T09:38:18.000Z","updated_at":"2025-02-21T05:54:42.000Z","dependencies_parsed_at":"2025-02-10T15:01:10.476Z","dependency_job_id":"ab9af5c9-8cc7-407a-a962-f48c9477598b","html_url":"https://github.com/testdeck/testdeck","commit_stats":null,"previous_names":["panayotcankov/mocha-typescript"],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/testdeck%2Ftestdeck","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/testdeck%2Ftestdeck/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/testdeck%2Ftestdeck/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/testdeck%2Ftestdeck/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/testdeck","download_url":"https://codeload.github.com/testdeck/testdeck/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254254041,"owners_count":22039792,"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":["decorators","dependency-injection","ioc","jasmine","javascript","jest","mocha","mocha-typescript","oop","parameterised-tests","tdd","tdd-interfaces","testing","testing-tools","typescript"],"created_at":"2024-08-03T17:00:29.472Z","updated_at":"2025-05-15T01:07:46.675Z","avatar_url":"https://github.com/testdeck.png","language":"TypeScript","readme":"[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![Build Status](https://github.com/testdeck/testdeck/actions/workflows/ci.yml/badge.svg)](https://github.com/testdeck/testdeck/actions/workflows/ci.yml)\n[![Issues](https://img.shields.io/github/issues/testdeck/testdeck.svg)](https://github.com/testdeck/testdeck/issues)\n[![Pull Requests](https://img.shields.io/github/issues-pr/testdeck/testdeck.svg)](https://github.com/testdeck/testdeck/pulls)\n\n# ![Testdeck](https://raw.githubusercontent.com/testdeck/testdeck/main/docs/assets/testdeck-wide.svg)\n\nTestdeck is a suite of decorators to integrate your favorite test framework into an object-oriented workflow:\n- [Mocha](https://mochajs.org)\n- [Jasmine](https://jasmine.github.io)\n- [Jest](https://jestjs.io)\n- [Vitest](https://vitest.dev)\n\n## Object-Oriented API Usage\nWith Testdeck, writing object-oriented test suites is just a blaze.\n\n``` TypeScript\nimport { suite, test } from \"@testdeck/mocha\";\nimport { expect } from 'chai';\n\nclass TestBase {\n  @test\n  basic() {\n    // expected fail :/\n    expect(true).to.equal(false);\n  }\n}\n\n@suite\nclass Hello extends TestBase {\n  @test\n  world() {\n    // expected fail :/\n    expect(false).to.equal(true);\n  }\n}\n```\n\n## Standard Functional API Usage\nWith Testdeck, you can always use the standard functional test framework API:\n\n``` TypeScript\nimport { expect } from 'chai';\n\nfunction basic() {\n  it('basic', () =\u003e {\n    // expected fail :/\n    expect(true).to.equal(false);\n  });\n}\n\ndescribe('Hello', () =\u003e {\n  basic();\n  it('world', () =\u003e {\n    // expected fail :/\n    expect(false).to.equal(true);\n  });\n})\n```\n\nAnd you can migrate your functional test suites to object-oriented over time.\n\n## Further Reading\n\n- [Documentation](https://testdeck.org)\n- [CHANGELOG](https://github.com/testdeck/testdeck/blob/main/CHANGELOG.md)\n- [LICENSE](https://github.com/testdeck/testdeck/blob/main/LICENSE)\n\n## License\n\n```\nCopyright 2016-2022 Testdeck Team and Contributors\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```\n\n## Packages\nTestdeck is the monorepo for the following packages:\n\n- [@testdeck/core](https://github.com/testdeck/testdeck/tree/main/packages/core)\n\n  Used for integrating [new] test frameworks and IOC frameworks.\n- [@testdeck/mocha](https://github.com/testdeck/testdeck/tree/main/packages/mocha)\n\n  Mocha test framework integration.\n- [@testdeck/jasmine](https://github.com/testdeck/testdeck/tree/main/packages/jasmine)\n\n  Jasmine test framework integration.\n- [@testdeck/jest](https://github.com/testdeck/testdeck/tree/main/packages/jest)\n\n  Jest test framework integration.\n- [@testdeck/vitest](https://github.com/testdeck/testdeck/tree/main/packages/vitest)\n\n  Vitest test framework integration.\n- [@testdeck/di-typedi](https://github.com/testdeck/testdeck/tree/main/packages/di-typedi)\n\n  TypeDI IOC container integration.\n","funding_links":[],"categories":["Packages","TypeScript"],"sub_categories":["Library extensions"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftestdeck%2Ftestdeck","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftestdeck%2Ftestdeck","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftestdeck%2Ftestdeck/lists"}