diff --git a/src/diagrams/git/gitGraphParserV2.spec.js b/src/diagrams/git/gitGraphParserV2.spec.js index fcf965d71..b6c9c2459 100644 --- a/src/diagrams/git/gitGraphParserV2.spec.js +++ b/src/diagrams/git/gitGraphParserV2.spec.js @@ -372,14 +372,16 @@ describe('when parsing a gitGraph', function () { branch cherry-pick03 branch branch/example-branch branch merge/test_merge + %% single character branch name + branch A `; parser.parse(str); const commits = parser.yy.getCommits(); expect(Object.keys(commits).length).toBe(1); - expect(parser.yy.getCurrentBranch()).toBe('merge/test_merge'); + expect(parser.yy.getCurrentBranch()).toBe('A'); expect(parser.yy.getDirection()).toBe('LR'); - expect(Object.keys(parser.yy.getBranches()).length).toBe(6); + expect(Object.keys(parser.yy.getBranches()).length).toBe(7); expect(Object.keys(parser.yy.getBranches())).toEqual( expect.arrayContaining([ 'branch01', @@ -387,6 +389,7 @@ describe('when parsing a gitGraph', function () { 'cherry-pick03', 'branch/example-branch', 'merge/test_merge', + 'A', ]) ); }); diff --git a/src/diagrams/git/parser/gitGraph.jison b/src/diagrams/git/parser/gitGraph.jison index 15909a314..f35dbcde3 100644 --- a/src/diagrams/git/parser/gitGraph.jison +++ b/src/diagrams/git/parser/gitGraph.jison @@ -61,7 +61,7 @@ checkout(?=\s|$) return 'CHECKOUT'; ["] this.popState(); [^"]* return 'STR'; [0-9]+(?=\s|$) return 'NUM'; -\w[-\./\w]*[-\w] return 'ID'; // only a subset of https://git-scm.com/docs/git-check-ref-format +\w([-\./\w]*[-\w])? return 'ID'; // only a subset of https://git-scm.com/docs/git-check-ref-format <> return 'EOF'; \s+ /* skip all whitespace */ // lowest priority so we can use lookaheads in earlier regex