IssueRaiser

Simplifying configuration

This is a bit rambling, sorry about that. Feel free to edit this to clean it up and add more to it. Jest currently has 51(!!) configuration options, many of which overlaps or intentionally overrides other options. (CLI options are out of scope for this issue, but they are obviously very much related) They fall into a few different categories: - file matching - some are arrays, some are not. - some are globs, some are regexes - `collectCoverageFrom` - `coveragePathIgnorePatterns` - `forceCoverageMatch` - `modulePathIgnorePatterns` - `testMatch` - `testPathIgnorePatterns` - `testRegex` - `transformIgnorePatterns` - `unmockedModulePathPatterns` - `watchPathIgnorePatterns` - modules and mocking - confusing overlap with node's `require` api (node paths, extensions) - `resetMocks` vs `clearMocks` vs `restoreMocks` - `automock` - `moduleDirectories` vs `modulePaths` (I honestly have no idea) - Coverage things - reporters - thresholds - output directory - Setup files - confusingly named, and inconsistent if they take array or string (#7119) - it keeps going (feel free to edit) --- First of all, I'd like to simplify the file matching a lot. Both to make it easier to use, but also easier to implement and reason about. For file matching I think `coveragePatterns: Array<Glob>`, `testPatterns: Array<Glob>`, `transformPatterns: Array<Glob>` and remove everything else. You can use negated patterns to exclude things ins

Posted by SimenB on Oct 16, 2018, 4:28 PM

Tags

Related issues

Raise real-world problems, find people facing the same issue, and discuss solutions.4,000 issues0 comments

onboarding (Other)

Simplifying configuration

SimenBOct 16, 2018, 4:28 PM

This is a bit rambling, sorry about that. Feel free to edit this to clean it up and add more to it. Jest currently has 51(!!) configuration options, many of which overlaps or intentionally overrides other options. (CLI options are out of scope for this issue, but they are obviously very much related) They fall into a few different categories: - file matching - some are arrays, some are not. - some are globs, some are regexes - `collectCoverageFrom` - `coveragePathIgnorePatterns` - `forceCoverageMatch` - `modulePathIgnorePatterns` - `testMatch` - `testPathIgnorePatterns` - `testRegex` - `transformIgnorePatterns` - `unmockedModulePathPatterns` - `watchPathIgnorePatterns` - modules and mocking - confusing overlap with node's `require` api (node paths, extensions) - `resetMocks` vs `clearMocks` vs `restoreMocks` - `automock` - `moduleDirectories` vs `modulePaths` (I honestly have no idea) - Coverage things - reporters - thresholds - output directory - Setup files - confusingly named, and inconsistent if they take array or string (#7119) - it keeps going (feel free to edit) --- First of all, I'd like to simplify the file matching a lot. Both to make it easier to use, but also easier to implement and reason about. For file matching I think `coveragePatterns: Array<Glob>`, `testPatterns: Array<Glob>`, `transformPatterns: Array<Glob>` and remove everything else. You can use negated patterns to exclude things ins

Comments (0)

No comments yet. Start the discussion.

Comment on this issue