Skip to content

Idered/typescript-expect-plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Typescript Expect Plugin

npm mit license CI Gitter twitter

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

npm install typescript-expect-plugin
  1. Add plugin to tsconfig.json:
{
  "compilerOptions": {
    "plugins": [{ "name": "typescript-expect-plugin" }]
  },
}
  1. Change VS Code typescript to workspace version:

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:

/**
 * @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

/**
 * @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<string, any>, key: string, value: any) {
  return {...obj, [key]: value}
}

Test objects

Test arrays

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.

twitter

About

🦥 Be lazy, write simple tests in comments.

Resources

License

Stars

Watchers

Forks

Packages

No packages published