baset
baset copied to clipboard
Improve scaffold command
Existing scaffold command is only proof-of-concept, its quality has to be dramatically improved.
Core features
- Create additional usages without optional parameters (as it already does for TypeScript signature overloads).
- Detect re-exports and skip them (this behavior could be optional).
- Options for including usual variables in specs (for now it includes only classes and functions).
- Don't skip files, when related spec exists, but look for uncovered exports and add them (this feature required for workflow mode(#65)).
- Correctly analyze ES3, ES5 and ESNext (now it works only with TypeScript).
Randomizing
- It has to support more data-types for randomizing arguments (for now only
string
andnumber
works). - This randomizing also has to be more intelligent, by using argument name for creating most suitable value (e.g. real name if argument is called
firstName
) - this feature has a lot of room for improvements (e.g. using context in addition to name), so in first release it doesn't required to be perfect but it has to be extensible.
Configuration
- Use configured resolvers for specific exports (it requires additional API for resolvers).
- Use configuration for creating specs in correct format and path instead of existing
.spec.ts
approach.
--lookForUsages
It also needs additional flag (e.g. --lookForUsages
) that is set to false
by default and does nothing in this case, but if it's set to true
scaffolder has to use typescript compiler's API for finding references in project (like it does for building code-lens in VS Code) and use them as spec code in addition to usual randomizing approach (which will add usages ONLY for uncovered parts).
This feature will be extremely useful for adding
baset
in existing projects.