Closed
Description
Reference documentation: https://github.com/conventional-changelog/commitlint/blob/36c58e3d0ba677280a17388cb5bbf58f4627a56a/docs/reference-rules.md#scope-enum
Expected Behavior
If any of the forbidden ('never') scopes are supplied as message scopes, the scope-enum validator should fail. Otherwise, it should pass.
Current Behavior
The scope-enum validator fails only if all of the message scopes are listed as forbidden ('never') scopes. Otherwise, it passes.
Affected packages
- cli
- core
- prompt
- config-angular
Possible Solution
Rework the scope-enum 'never' validation to be it's own condition, not simply the negation of the 'always' validation.
Steps to Reproduce
{
"rules": {
"scope-enum": [2, "never", [
"action",
]]
},
};
Test 1:
- Command: echo 'fix(different): Test message.' | npx commitlint@18.4.2 -V
- Actual Result: Pass
- Expected Result: Pass
Test 2:
- Command: echo 'fix(action): Test message.' | npx commitlint@18.4.2 -V
- Actual Result: Failure
- Expected Result: Failure
Test 3:
- Command: echo 'fix(action,other): Test message.' | npx commitlint@18.4.2 -V
- Actual Result: Pass
- Expected Result: Failure ('action' is a forbidden scope)
---
{
"rules": {
"scope-enum": [2, "never", [
"action",
"other"
]]
},
};
Test 1:
- Command: echo 'fix(action): Test message.' | npx commitlint@18.4.2 -V
- Actual Result: Failure
- Expected Result: Failure
Test 2:
- Command: echo 'fix(action,other): Test message.' | npx commitlint@18.4.2 -V
- Actual Result: Failure
- Expected Result: Failure
Test 3:
- Command: echo 'fix(action,different): Test message.' | npx commitlint@18.4.2 -V
- Actual Result: Pass
- Expected Result: Failure ('action' is a forbidden scope)
Test 4:
- Command: echo 'fix(action,different,other): Test message.' | npx commitlint@18.4.2 -V
- Actual Result: Failure
- Expected Result: Failure
---
{
"rules": {
"scope-enum": [2, "never", []]
},
};
Test 1:
- Command: echo 'fix(action): Test message.' | npx commitlint@18.4.2 -V
- Actual Result: Fail
- Expected Result: Pass (there aren't any forbidden scopes)
Context
Discovered in PR: #3725 as a result of failing tests.
commitlint --version
@commitlint/rules@18.4.0
git --version
2.41.0
node --version
20.9.0