aboutsummaryrefslogtreecommitdiff
path: root/thirdparty/preact/test/browser/refs.js
diff options
context:
space:
mode:
Diffstat (limited to 'thirdparty/preact/test/browser/refs.js')
-rw-r--r--thirdparty/preact/test/browser/refs.js22
1 files changed, 20 insertions, 2 deletions
diff --git a/thirdparty/preact/test/browser/refs.js b/thirdparty/preact/test/browser/refs.js
index 89678b76e..337a9717b 100644
--- a/thirdparty/preact/test/browser/refs.js
+++ b/thirdparty/preact/test/browser/refs.js
@@ -200,8 +200,8 @@ describe('refs', () => {
</div>
), scratch);
- expect(Foo.prototype.render).to.have.been.calledWithExactly({ a:'a' }, { }, { });
- expect(Bar).to.have.been.calledWithExactly({ b:'b', ref:bar }, { });
+ expect(Foo.prototype.render).to.have.been.calledWithMatch({ ref:sinon.match.falsy, a:'a' }, { }, { });
+ expect(Bar).to.have.been.calledWithMatch({ b:'b', ref:bar }, { });
});
// Test for #232
@@ -284,4 +284,22 @@ describe('refs', () => {
expect(inst.handleMount.firstCall).to.have.been.calledWith(null);
expect(inst.handleMount.secondCall).to.have.been.calledWith(scratch.querySelector('#div'));
});
+
+
+ it('should add refs to components representing DOM nodes with no attributes if they have been pre-rendered', () => {
+ // Simulate pre-render
+ let parent = document.createElement('div');
+ let child = document.createElement('div');
+ parent.appendChild(child);
+ scratch.appendChild(parent); // scratch contains: <div><div></div></div>
+
+ let ref = spy('ref');
+
+ function Wrapper() {
+ return <div></div>;
+ }
+
+ render(<div><Wrapper ref={ref} /></div>, scratch, scratch.firstChild);
+ expect(ref).to.have.been.calledOnce.and.calledWith(scratch.firstChild.firstChild);
+ });
});