From 687e74de9be37e8f676123b055d32dccf167ec3d Mon Sep 17 00:00:00 2001 From: Christian Klemm Date: Tue, 8 Oct 2019 22:57:40 +0200 Subject: [PATCH] fixed members order --- src/diagrams/class/classDb.js | 7 ++++--- src/diagrams/class/classDiagram.spec.js | 20 ++++++++++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/diagrams/class/classDb.js b/src/diagrams/class/classDb.js index cb4c42c8a..201df5d7b 100644 --- a/src/diagrams/class/classDb.js +++ b/src/diagrams/class/classDb.js @@ -80,9 +80,10 @@ export const addMember = function(className, member) { } }; -export const addMembers = function(className, MembersArr) { - if (Array.isArray(MembersArr)) { - MembersArr.forEach(member => addMember(className, member)); +export const addMembers = function(className, members) { + if (Array.isArray(members)) { + members.reverse(); + members.forEach(member => addMember(className, member)); } }; diff --git a/src/diagrams/class/classDiagram.spec.js b/src/diagrams/class/classDiagram.spec.js index 67946fd67..6ff4fad13 100644 --- a/src/diagrams/class/classDiagram.spec.js +++ b/src/diagrams/class/classDiagram.spec.js @@ -262,5 +262,25 @@ describe('class diagram, ', function() { expect(testClass.methods.length).toBe(1); expect(testClass.annotations[0]).toBe('interface'); }); + + it('should add bracket members in right order', function() { + const str = + 'classDiagram\n' + + 'class Class1 {\n' + + 'int : test\n' + + 'string : foo\n' + + 'test()\n' + + 'foo()\n' + + '}'; + parser.parse(str); + + const testClass = parser.yy.getClass('Class1'); + expect(testClass.members.length).toBe(2); + expect(testClass.methods.length).toBe(2); + expect(testClass.members[0]).toBe('int : test'); + expect(testClass.members[1]).toBe('string : foo'); + expect(testClass.methods[0]).toBe('test()'); + expect(testClass.methods[1]).toBe('foo()'); + }); }); });