From 2a5b0b69574e79efa579e8cbc616c887331981fa Mon Sep 17 00:00:00 2001 From: elyalvarado Date: Sat, 4 May 2019 22:37:40 -0500 Subject: [PATCH] Fix #15 make render return bound queries passed as options The documentation mentions that queries can be passed as an option to render to specify which queries to bind, or add custom bound queries. This commit fixes this behaviour and adds a regression test. --- src/__tests__/render.js | 10 ++++++++++ src/index.js | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/__tests__/render.js b/src/__tests__/render.js index 63fc8f3..dfb4475 100644 --- a/src/__tests__/render.js +++ b/src/__tests__/render.js @@ -30,3 +30,13 @@ test('renders options.wrapper around node', () => { `); }); + +test('returns the queries passed as options bound to the container', () => { + const _getQueryPassedAsOption = { bind: jest.fn(() => _getQueryPassedAsOption) } + const queries = { getQueryPassedAsOption: _getQueryPassedAsOption }; + + const { container, getQueryPassedAsOption } = render(, { queries }); + + expect(queries.getQueryPassedAsOption.bind).toHaveBeenCalledWith(null,container); + expect(getQueryPassedAsOption).toEqual(_getQueryPassedAsOption); +}); diff --git a/src/index.js b/src/index.js index 68304e4..f2a72eb 100644 --- a/src/index.js +++ b/src/index.js @@ -9,7 +9,7 @@ import { resultContainer, TestHook } from './hooks'; import { getQueriesForElement } from './get-queries-for-element'; import { fireEvent as rntlFireEvent, NativeEvent } from './events'; -function render(ui, { options = {}, wrapper: WrapperComponent } = {}) { +function render(ui, { options = {}, wrapper: WrapperComponent, queries } = {}) { const wrapUiIfNeeded = innerElement => WrapperComponent ? {innerElement} : innerElement; @@ -31,7 +31,7 @@ function render(ui, { options = {}, wrapper: WrapperComponent } = {}) { container.update(wrapUiIfNeeded(rerenderUi)); }); }, - ...getQueriesForElement(container), + ...getQueriesForElement(container, queries || undefined), }; }