From 60e8b04ebb9de6523fa4e55f0f363886c7a175fb Mon Sep 17 00:00:00 2001 From: escapedcat Date: Sun, 23 Dec 2018 17:49:40 +0100 Subject: [PATCH 1/3] test(rules): add test for slash in scope #291 --- @commitlint/ensure/src/case.test.js | 5 +++++ @commitlint/rules/src/scope-case.js | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/@commitlint/ensure/src/case.test.js b/@commitlint/ensure/src/case.test.js index ec517ee88d..d19847abbf 100644 --- a/@commitlint/ensure/src/case.test.js +++ b/@commitlint/ensure/src/case.test.js @@ -110,6 +110,11 @@ test('true for * on pascal-case', t => { t.is(actual, true); }); +test('true for Modules/Graph on pascal-case', t => { + const actual = ensure('Modules/Graph', 'pascal-case'); + t.is(actual, true); +}); + test('true for * on start-case', t => { const actual = ensure('*', 'start-case'); t.is(actual, true); diff --git a/@commitlint/rules/src/scope-case.js b/@commitlint/rules/src/scope-case.js index a7fa546474..7bfbe89b13 100644 --- a/@commitlint/rules/src/scope-case.js +++ b/@commitlint/rules/src/scope-case.js @@ -21,7 +21,7 @@ export default (parsed, when, value) => { }); const result = checks.some(check => { - const r = ensure.case(scope, check.case); + const r = ensure.case(scope, check.case); // Type "Modules/Graph" creates false here return negated(check.when) ? !r : r; }); From 1d873c070db43bc83a4652df624c75563ad920ab Mon Sep 17 00:00:00 2001 From: Cedric van Putten Date: Wed, 2 Jan 2019 18:23:37 +0100 Subject: [PATCH 2/3] fix(ensure): split input by slashes for casing --- @commitlint/ensure/src/case.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/@commitlint/ensure/src/case.js b/@commitlint/ensure/src/case.js index db0f1b1ed5..31e1b6a166 100644 --- a/@commitlint/ensure/src/case.js +++ b/@commitlint/ensure/src/case.js @@ -8,7 +8,11 @@ function ensureCase(raw = '', target = 'lowercase') { const input = String(raw) .replace(/`.*?`|".*?"|'.*?'/g, '') .trim(); - const transformed = toCase(input, target); + + const delimiters = /(\/|\\)/g; + const transformed = input.split(delimiters) + .map(segment => delimiters.test(segment) ? segment : toCase(segment, target)) + .join(''); if (transformed === '' || transformed.match(/^\d/)) { return true; From 435c39f0ddc4bfaac8359c4e2581b7531b348805 Mon Sep 17 00:00:00 2001 From: hannes Date: Thu, 3 Jan 2019 08:58:10 +0100 Subject: [PATCH 3/3] chore: remove comment --- @commitlint/rules/src/scope-case.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/@commitlint/rules/src/scope-case.js b/@commitlint/rules/src/scope-case.js index 7bfbe89b13..a7fa546474 100644 --- a/@commitlint/rules/src/scope-case.js +++ b/@commitlint/rules/src/scope-case.js @@ -21,7 +21,7 @@ export default (parsed, when, value) => { }); const result = checks.some(check => { - const r = ensure.case(scope, check.case); // Type "Modules/Graph" creates false here + const r = ensure.case(scope, check.case); return negated(check.when) ? !r : r; });