diff options
author | Ulrich-Matthias Schäfer <ulima.ums@googlemail.com> | 2021-11-23 09:58:37 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-23 09:58:37 +0100 |
commit | 480e5d77e2dcefd6bc4f95a053bb545d9916eb72 (patch) | |
tree | b1e5f440460190c258e61628ab1baf3f247d53b8 /spec | |
parent | b01c7ee0bc70b1221aa887be355634e1b4e0dd06 (diff) | |
parent | a8a8c636b8ee3b536c05653decd71856777c7a5a (diff) | |
download | svg.js-480e5d77e2dcefd6bc4f95a053bb545d9916eb72.tar.gz svg.js-480e5d77e2dcefd6bc4f95a053bb545d9916eb72.zip |
Merge pull request #1236 from gormster/fix-1235
Fix #1235
Diffstat (limited to 'spec')
-rw-r--r-- | spec/spec/elements/Element.js | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/spec/spec/elements/Element.js b/spec/spec/elements/Element.js index 0d7fa55..70c3a52 100644 --- a/spec/spec/elements/Element.js +++ b/spec/spec/elements/Element.js @@ -165,6 +165,7 @@ describe('Element.js', function () { describe('parents()', () => { it('returns array of parents until the passed element or root svg', () => { const canvas = SVG().addTo(container) + const groupA = canvas.group().addClass('test') const group1 = canvas.group().addClass('test') const group2 = group1.group() const group3 = group2.group() @@ -175,6 +176,33 @@ describe('Element.js', function () { expect(rect.parents(group1).length).toBe(3) expect(rect.parents()).toEqual([ group3, group2, group1, canvas ]) }) + + it('returns array of parents until the closest matching parent', () => { + const canvas = SVG().addTo(container) + const groupA = canvas.group().addClass('test') + const group1 = canvas.group().addClass('test') + const group2 = group1.group().addClass('test').addClass('foo') + const group3 = group2.group().addClass('foo') + const rect = group3.rect(100, 100) + + expect(rect.parents('.test')).toEqual([ group3, group2 ]) + expect(rect.parents('.foo')).toEqual([ group3 ]) + expect(rect.parents('.test:not(.foo)')).toEqual([ group3, group2, group1 ]) + }) + + it('returns null if the passed element is not an ancestor', () => { + const canvas = SVG().addTo(container) + const groupA = canvas.group().addClass('test') + const group1 = canvas.group() + const group2 = group1.group() + const group3 = group2.group() + const rect = group3.rect(100, 100) + + + expect(rect.parents('.does-not-exist')).toEqual(null) + expect(rect.parents('.test')).toEqual(null) + expect(rect.parents(groupA)).toEqual(null) + }) }) describe('reference()', () => { |