From ff6bdcdfeeda17c77446dde098f62d71044210fa Mon Sep 17 00:00:00 2001 From: Brian Mann Date: Fri, 15 Nov 2019 09:01:34 -0500 Subject: [PATCH] =?UTF-8?q?call=20setTimeout=20with=20the=20right=20global?= =?UTF-8?q?=20scope=20to=20prevent=20'this'=20f=E2=80=A6=20(#5709)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/driver/src/cy/timers.js | 2 +- packages/driver/test/cypress/fixtures/issue-5707.html | 11 +++++++++++ .../test/cypress/integration/issues/5707_spec.js | 7 +++++++ 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 packages/driver/test/cypress/fixtures/issue-5707.html create mode 100644 packages/driver/test/cypress/integration/issues/5707_spec.js diff --git a/packages/driver/src/cy/timers.js b/packages/driver/src/cy/timers.js index fcc4b03c309a..9f61ac51edc2 100644 --- a/packages/driver/src/cy/timers.js +++ b/packages/driver/src/cy/timers.js @@ -19,7 +19,7 @@ const create = () => { const invoke = (contentWindow, fnOrCode, params = []) => { if (_.isFunction(fnOrCode)) { - return fnOrCode(...params) + return fnOrCode.apply(contentWindow, params) } return contentWindow.eval(fnOrCode) diff --git a/packages/driver/test/cypress/fixtures/issue-5707.html b/packages/driver/test/cypress/fixtures/issue-5707.html new file mode 100644 index 000000000000..ee8c7e92d26e --- /dev/null +++ b/packages/driver/test/cypress/fixtures/issue-5707.html @@ -0,0 +1,11 @@ + + + + + + diff --git a/packages/driver/test/cypress/integration/issues/5707_spec.js b/packages/driver/test/cypress/integration/issues/5707_spec.js new file mode 100644 index 000000000000..ccdcc9a224ce --- /dev/null +++ b/packages/driver/test/cypress/integration/issues/5707_spec.js @@ -0,0 +1,7 @@ +// https://github.com/cypress-io/cypress/issues/5707 +describe('issue 5707', () => { + it('calls setTimeout with the correct context', () => { + cy.visit('/fixtures/issue-5707.html') + cy.window().its('foo').should('eq', 'bar') + }) +})