From 6fb69918c36f48694ddfaf790e66b174fbf74976 Mon Sep 17 00:00:00 2001 From: Aleksey Popov Date: Thu, 16 Dec 2021 12:06:31 +0300 Subject: [PATCH 1/2] fix: added conditions for not expanding disabled select --- src/client/ui/select-element.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/ui/select-element.js b/src/client/ui/select-element.js index 7c59508cb0..4732a9a9ce 100644 --- a/src/client/ui/select-element.js +++ b/src/client/ui/select-element.js @@ -144,7 +144,7 @@ function createChildren (children, parent) { export function expandOptionList (select) { const selectChildren = select.children; - if (!selectChildren.length) + if (!selectChildren.length || select.disabled) return; //NOTE: check is option list expanded From 86232d6ae039d4d050642feac7517d6becbca433 Mon Sep 17 00:00:00 2001 From: Aleksey Popov Date: Thu, 16 Dec 2021 12:17:46 +0300 Subject: [PATCH 2/2] test: added test Element "select" shouldn't be opened --- .../fixtures/regression/gh-5616/pages/index.html | 14 ++++++++++++++ .../functional/fixtures/regression/gh-5616/test.js | 5 +++++ .../regression/gh-5616/testcafe-fixtures/index.js | 9 +++++++++ 3 files changed, 28 insertions(+) create mode 100644 test/functional/fixtures/regression/gh-5616/pages/index.html create mode 100644 test/functional/fixtures/regression/gh-5616/test.js create mode 100644 test/functional/fixtures/regression/gh-5616/testcafe-fixtures/index.js diff --git a/test/functional/fixtures/regression/gh-5616/pages/index.html b/test/functional/fixtures/regression/gh-5616/pages/index.html new file mode 100644 index 0000000000..8caeaf1f39 --- /dev/null +++ b/test/functional/fixtures/regression/gh-5616/pages/index.html @@ -0,0 +1,14 @@ + + + + + gh-5616 + + + + + diff --git a/test/functional/fixtures/regression/gh-5616/test.js b/test/functional/fixtures/regression/gh-5616/test.js new file mode 100644 index 0000000000..41099dc8de --- /dev/null +++ b/test/functional/fixtures/regression/gh-5616/test.js @@ -0,0 +1,5 @@ +describe('[Regression](GH-5616)', function () { + it('Element "select" shouldn\'t be opened', function () { + return runTests('testcafe-fixtures/index.js'); + }); +}); diff --git a/test/functional/fixtures/regression/gh-5616/testcafe-fixtures/index.js b/test/functional/fixtures/regression/gh-5616/testcafe-fixtures/index.js new file mode 100644 index 0000000000..077a09576f --- /dev/null +++ b/test/functional/fixtures/regression/gh-5616/testcafe-fixtures/index.js @@ -0,0 +1,9 @@ +import { Selector } from 'testcafe'; + +fixture`Click on "select" element` + .page('http://localhost:3000/fixtures/regression/gh-5616/pages/index.html'); + +test('Element "select" shouldn\'t be opened', async (t) => { + await t.click('select'); + await t.expect(Selector('option').filterVisible().count).eql(0); +});