Skip to content

Commit 5ca02ac

Browse files
authored
Fix nested value transformation (#49)
Nested values were not being transformed, as `valTransformer` was not being passed to nested panels. Let's fix that, and add tests.
1 parent 1f53122 commit 5ca02ac

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

src/pair.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,10 @@ class ExpandablePair extends Pair {
9898

9999
expand() {
100100
// Open new panel
101-
Panel.renderToEl(this.el, {data: this.val});
101+
Panel.renderToEl(this.el, {
102+
data: this.val,
103+
valTransformer: this.valTransformer
104+
});
102105
this.el.classList.add('expanded');
103106
}
104107

test/jsonpanel.test.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,4 +98,22 @@ describe('value transformer', () => {
9898
.textContent;
9999
expect(transformedVal).toBe(`"${testStr.toLowerCase()}"`);
100100
});
101+
102+
test('transforms nested values', () => {
103+
const testStr = 'A mix Of Upper and Lowercase.';
104+
105+
jsonpanel({
106+
data: {
107+
nested: {
108+
testStr
109+
}
110+
},
111+
valTransformer: str => str.toLowerCase()
112+
});
113+
114+
document.body.querySelector('.expander').click();
115+
const transformedVal = document.body.querySelector('.val.string')
116+
.textContent;
117+
expect(transformedVal).toBe(`"${testStr.toLowerCase()}"`);
118+
});
101119
});

0 commit comments

Comments
 (0)