Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Idered/typescript-expect-plugin
π¦₯ Be lazy, write simple tests in comments.
https://github.com/Idered/typescript-expect-plugin
Last synced: 1 day ago
JSON representation
π¦₯ Be lazy, write simple tests in comments.
- Host: GitHub
- URL: https://github.com/Idered/typescript-expect-plugin
- Owner: Idered
- License: mit
- Created: 2020-05-24T23:21:17.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2021-08-12T12:34:18.000Z (over 3 years ago)
- Last Synced: 2024-10-29T18:23:45.754Z (14 days ago)
- Language: TypeScript
- Homepage:
- Size: 66.4 KB
- Stars: 341
- Watchers: 6
- Forks: 4
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-list - typescript-expect-plugin
README
Typescript Expect Plugin
Be lazy, write simple tests in comments.
## Editor support
β VS Code - flawlessly works in `Problems` panel.
βΉ Sublime Text - could not get it to work but it might be possible.
β Atom - not tested.
β `tsc` - plugins are disabled during build. It should work with webpack ts loader.
## Quick start
```sh
npm install typescript-expect-plugin
```1. Add plugin to `tsconfig.json`:
```ts
{
"compilerOptions": {
"plugins": [{ "name": "typescript-expect-plugin" }]
},
}
```2. Change VS Code typescript to workspace version:
![](https://i.imgur.com/kK9BlMi.gif)
## Usage
## WARNING
> β Tests are executed after each file change - not save. Be careful if you're going to test functions that remove or change files in your local system
---
This plugin adds support for `@expect` JSDoc tag. It has the following usage pattern:
```tsx
/**
* @expect [PARAMS] CONDITION CONDITION_PARAMETER
*/
```- `[PARAMS]` - for example `[2, 4]` will spread two arguments to tested function.
- `CONDITION` - check function from jest expect library. Use `ctrl+space` to see autocomplete suggestions.
- `CONDITION_PARAMETER` - argument passed to `CONDITION` function.## Examples
```tsx
/**
* @expect [2, 4] toBe 6
* @expect [2, 2] toBeGreaterThan 3
* @expect [2, 2] toBeLessThan 3
* @expect [2, 22] toEqual 24
*/
export function sum(a: number, b: number) {
return a + b;
}/**
* @expect [[2, 4, 8], 4] toBeTruthy
* @expect [[2, 4, 8], 12] toBeFalsy
*/
export function has(haystack: any[], needle: any) {
return haystack.includes(needle);
}/**
* @expect [[2, 8], [9, 12]] toEqual [2, 8, 9, 12]
*/
export function join(arr1: any[], arr2: any[]) {
return [...arr1, ...arr2];
}/**
* @expect [{"firstName": "John"}, "lastName", "Doe"] toHaveProperty "lastName", "Doe Doe"
*/
export function withProp(obj: Record, key: string, value: any) {
return {...obj, [key]: value}
}
```> ### Test objects
![](https://i.imgur.com/ZplL1PV.gif)> ### Test arrays
![](https://i.imgur.com/epox4Pu.gif)
## Author
Hey there, I'm Kasper. If you wish to get notified about more cool typescript or react projects/tips you can follow me on twitter.