From ad9295917d074e01a8ad6b32b39e1d7164fa1c91 Mon Sep 17 00:00:00 2001 From: Brian Mann Date: Fri, 15 Nov 2019 00:09:58 -0500 Subject: [PATCH] call setTimeout with the right global scope to prevent 'this' from being undefined --- 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') + }) +})