From 9afd2470e40891de5baee679e70867fdea3fd87f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atte=20Kein=C3=A4nen?= <atte.keinanen@gmail.com> Date: Fri, 11 Aug 2017 14:20:07 -0700 Subject: [PATCH] Use new helpers in rest of tests [ci e2e] --- frontend/test/__support__/enzyme_utils.js | 2 +- frontend/test/__support__/integrated_tests.js | 4 -- .../admin/datamodel/FieldApp.integ.spec.js | 37 +++++++++---------- .../admin/datamodel/datamodel.integ.spec.js | 18 ++++----- .../admin/settings/settings.integ.spec.js | 3 +- .../components/PasswordReveal.unit.spec.js | 4 +- .../components/StepIndicators.unit.spec.js | 4 +- .../test/dashboard/dashboard.integ.spec.js | 14 ++++--- .../home/NewUserOnboardingModal.unit.spec.js | 6 ++- ...ummarizeBySegmentMetricAction.unit.spec.js | 8 ++-- .../test/parameters/parameters.integ.spec.js | 8 ++-- .../dataref/FieldPane.integ.spec.js | 4 +- 12 files changed, 57 insertions(+), 55 deletions(-) diff --git a/frontend/test/__support__/enzyme_utils.js b/frontend/test/__support__/enzyme_utils.js index a748ba9f984..b77bc55a21f 100644 --- a/frontend/test/__support__/enzyme_utils.js +++ b/frontend/test/__support__/enzyme_utils.js @@ -30,7 +30,7 @@ export const clickButton = (enzymeWrapper) => { } } -export const setInputValue = (inputWrapper, value, { blur = true } = {}) => { +export const setInputValue = (inputWrapper, value, { blur = true } = {}) => { inputWrapper.simulate('change', { target: { value: value } }); if (blur) inputWrapper.simulate("blur") } diff --git a/frontend/test/__support__/integrated_tests.js b/frontend/test/__support__/integrated_tests.js index 80d5939ce05..b6331c3e7bd 100644 --- a/frontend/test/__support__/integrated_tests.js +++ b/frontend/test/__support__/integrated_tests.js @@ -193,8 +193,6 @@ const testStoreEnhancer = (createStore, history, getRoutes) => { _onActionDispatched: null, _dispatchedActions: [], _finalStoreInstance: null, - _usingAppContainer: false, - dispatch: (action) => { const result = store._originalDispatch(action); @@ -282,7 +280,6 @@ const testStoreEnhancer = (createStore, history, getRoutes) => { connectContainer: (reactContainer) => { store.warnIfStoreCreationNotComplete(); - store._usingAppContainer = false; const routes = createRoutes(getRoutes(store._finalStoreInstance)) return store._connectWithStore( @@ -296,7 +293,6 @@ const testStoreEnhancer = (createStore, history, getRoutes) => { getAppContainer: () => { store.warnIfStoreCreationNotComplete(); - store._usingAppContainer = true; return store._connectWithStore( <Router history={history}> diff --git a/frontend/test/admin/datamodel/FieldApp.integ.spec.js b/frontend/test/admin/datamodel/FieldApp.integ.spec.js index d25f17d5a3b..cad966f5918 100644 --- a/frontend/test/admin/datamodel/FieldApp.integ.spec.js +++ b/frontend/test/admin/datamodel/FieldApp.integ.spec.js @@ -7,8 +7,7 @@ import { clickButton, setInputValue, click -} from "__support__/enzyme_utils"; - +} from "__support__/enzyme_utils" import { DELETE_FIELD_DIMENSION, deleteFieldDimension, @@ -130,7 +129,7 @@ describe("FieldApp", () => { const { store, fieldApp } = await initFieldApp({ fieldId: CREATED_AT_ID }); const visibilitySelect = fieldApp.find(FieldVisibilityPicker); - visibilitySelect.simulate('click'); + click(visibilitySelect); click(visibilitySelect.find(TestPopover).find("li").at(1).children().first()); await store.waitForActions([UPDATE_FIELD]) @@ -166,7 +165,7 @@ describe("FieldApp", () => { const { store, fieldApp } = await initFieldApp({ fieldId: CREATED_AT_ID }); const picker = fieldApp.find(SpecialTypeAndTargetPicker) const typeSelect = picker.find(Select).at(0) - typeSelect.simulate('click'); + click(typeSelect); const noSpecialTypeButton = typeSelect.find(TestPopover).find("li").last().children().first() click(noSpecialTypeButton); @@ -179,7 +178,7 @@ describe("FieldApp", () => { const { store, fieldApp } = await initFieldApp({ fieldId: CREATED_AT_ID }); const picker = fieldApp.find(SpecialTypeAndTargetPicker) const typeSelect = picker.find(Select).at(0) - typeSelect.simulate('click'); + click(typeSelect); const noSpecialTypeButton = typeSelect.find(TestPopover) .find("li") @@ -196,7 +195,7 @@ describe("FieldApp", () => { const { store, fieldApp } = await initFieldApp({ fieldId: CREATED_AT_ID }); const picker = fieldApp.find(SpecialTypeAndTargetPicker) const typeSelect = picker.find(Select).at(0) - typeSelect.simulate('click'); + click(typeSelect); const foreignKeyButton = typeSelect.find(TestPopover).find("li").at(2).children().first(); click(foreignKeyButton); @@ -205,14 +204,14 @@ describe("FieldApp", () => { expect(picker.text()).toMatch(/Foreign KeySelect a target/); const fkFieldSelect = picker.find(Select).at(1) - fkFieldSelect.simulate('click'); + click(fkFieldSelect); const productIdField = fkFieldSelect.find(TestPopover) .find("li") .filterWhere(li => /The numerical product number./.test(li.text())) .first().children().first(); - productIdField.simulate('click') + click(productIdField) await store.waitForActions([UPDATE_FIELD]) expect(picker.text()).toMatch(/Foreign KeyProducts → ID/); }) @@ -237,7 +236,7 @@ describe("FieldApp", () => { const mappingTypePicker = section.find(Select).first(); expect(mappingTypePicker.text()).toBe('Use original value') - mappingTypePicker.simulate('click'); + click(mappingTypePicker); const pickerOptions = mappingTypePicker.find(TestPopover).find("li"); expect(pickerOptions.length).toBe(1); }) @@ -248,12 +247,12 @@ describe("FieldApp", () => { const mappingTypePicker = section.find(Select); expect(mappingTypePicker.text()).toBe('Use original value') - mappingTypePicker.simulate('click'); + click(mappingTypePicker); const pickerOptions = mappingTypePicker.find(TestPopover).find("li"); expect(pickerOptions.length).toBe(2); const useFKButton = pickerOptions.at(1).children().first() - useFKButton.simulate('click'); + click(useFKButton); store.waitForActions([UPDATE_FIELD_DIMENSION, FETCH_TABLE_METADATA]) store.resetDispatchedActions(); // TODO: Figure out a way to avoid using delay – the use of delays may lead to occasional CI failures @@ -262,14 +261,14 @@ describe("FieldApp", () => { const fkFieldSelect = section.find(SelectButton); expect(fkFieldSelect.text()).toBe("Name"); - fkFieldSelect.simulate('click'); + click(fkFieldSelect); const sourceField = fkFieldSelect.parent().find(TestPopover) .find("li") .filterWhere(li => /Source/.test(li.text())) .first().children().first(); - sourceField.simulate('click') + click(sourceField) store.waitForActions([FETCH_TABLE_METADATA]) // TODO: Figure out a way to avoid using delay – the use of delays may lead to occasional CI failures await delay(500); @@ -283,7 +282,7 @@ describe("FieldApp", () => { expect(mappingTypePicker.text()).toBe('Use foreign key') const fkFieldSelect = section.find(SelectButton); - fkFieldSelect.simulate('click'); + click(fkFieldSelect); const popover = fkFieldSelect.parent().find(TestPopover); expect(popover.length).toBe(1); @@ -298,10 +297,10 @@ describe("FieldApp", () => { const mappingTypePicker = section.find(Select); expect(mappingTypePicker.text()).toBe('Use foreign key') - mappingTypePicker.simulate('click'); + click(mappingTypePicker); const pickerOptions = mappingTypePicker.find(TestPopover).find("li"); const useOriginalValue = pickerOptions.first().children().first() - useOriginalValue.simulate('click'); + click(useOriginalValue); store.waitForActions([DELETE_FIELD_DIMENSION, FETCH_TABLE_METADATA]); }) @@ -312,7 +311,7 @@ describe("FieldApp", () => { const mappingTypePicker = section.find(Select); expect(mappingTypePicker.text()).toBe('Use original value') - mappingTypePicker.simulate('click'); + click(mappingTypePicker); const pickerOptions = mappingTypePicker.find(TestPopover).find("li"); expect(pickerOptions.length).toBe(1); }); @@ -324,12 +323,12 @@ describe("FieldApp", () => { const mappingTypePicker = section.find(Select); expect(mappingTypePicker.text()).toBe('Use original value') - mappingTypePicker.simulate('click'); + click(mappingTypePicker); const pickerOptions = mappingTypePicker.find(TestPopover).find("li"); expect(pickerOptions.length).toBe(2); const customMappingButton = pickerOptions.at(1).children().first() - customMappingButton.simulate('click'); + click(customMappingButton); store.waitForActions([UPDATE_FIELD_DIMENSION, FETCH_TABLE_METADATA]) // TODO: Figure out a way to avoid using delay – using delays may lead to occasional CI failures diff --git a/frontend/test/admin/datamodel/datamodel.integ.spec.js b/frontend/test/admin/datamodel/datamodel.integ.spec.js index e65a4372628..213685b78a0 100644 --- a/frontend/test/admin/datamodel/datamodel.integ.spec.js +++ b/frontend/test/admin/datamodel/datamodel.integ.spec.js @@ -54,17 +54,17 @@ describe("admin/datamodel", () => { store.resetDispatchedActions() // Toggle its visibility to "Hidden" - app.find("#VisibilityTypes > span").at(1).simulate("click"); + click(app.find("#VisibilityTypes > span").at(1)) await store.waitForActions([UPDATE_TABLE]); store.resetDispatchedActions() // Toggle "Why hide" to "Irrelevant/Cruft" - app.find("#VisibilitySubTypes > span").at(2).simulate("click") + click(app.find("#VisibilitySubTypes > span").at(2)) await store.waitForActions([UPDATE_TABLE]); store.resetDispatchedActions() // Unhide - app.find("#VisibilityTypes > span").at(0).simulate("click"); + click(app.find("#VisibilityTypes > span").at(0)) // Open "People" table section click(adminListItems.at(1)); @@ -129,7 +129,7 @@ describe("admin/datamodel", () => { const addFilterButton = filterPopover.find(".Button.disabled"); - filterPopover.find('textarea.border-purple').simulate('change', { target: { value: "gmail" }}) + setInputValue(filterPopover.find('textarea.border-purple'), "gmail"); await clickButton(addFilterButton); await store.waitForActions([UPDATE_PREVIEW_SUMMARY]); @@ -139,7 +139,7 @@ describe("admin/datamodel", () => { setInputValue(app.find("textarea[name='description']"), "change") // Save the segment - app.find('button[children="Save changes"]').simulate("click"); + click(app.find('button[children="Save changes"]')) await store.waitForActions([CREATE_SEGMENT, INITIALIZE_METADATA]); store.resetDispatchedActions(); @@ -165,13 +165,13 @@ describe("admin/datamodel", () => { await store.waitForActions([FETCH_TABLE_METADATA, UPDATE_PREVIEW_SUMMARY]); click(app.find("#Query-section-aggregation")); - app.find("#AggregationPopover").find('h4[children="Count of rows"]').simulate("click"); + click(app.find("#AggregationPopover").find('h4[children="Count of rows"]')) - app.find("input[name='name']").simulate('change', { target: { value: 'User count' }}); - app.find("textarea[name='description']").simulate("change", { target: { value: 'Total number of users'}}); + setInputValue(app.find("input[name='name']"), 'User count'); + setInputValue(app.find("textarea[name='description']"), 'Total number of users'); // Save the metric - app.find('button[children="Save changes"]').simulate("click"); + click(app.find('button[children="Save changes"]')) await store.waitForActions([CREATE_METRIC, INITIALIZE_METADATA]); expect(store.getPath()).toBe("/admin/datamodel/database/1/table/2") diff --git a/frontend/test/admin/settings/settings.integ.spec.js b/frontend/test/admin/settings/settings.integ.spec.js index ac12a8979ad..7b7d8d1d88a 100644 --- a/frontend/test/admin/settings/settings.integ.spec.js +++ b/frontend/test/admin/settings/settings.integ.spec.js @@ -7,6 +7,7 @@ import { mount } from "enzyme"; import SettingInput from "metabase/admin/settings/components/widgets/SettingInput"; import { INITIALIZE_SETTINGS, UPDATE_SETTING } from "metabase/admin/settings/settings"; import { LOAD_CURRENT_USER } from "metabase/redux/user"; +import { setInputValue } from "__support__/enzyme_utils"; describe("admin/settings", () => { beforeAll(async () => @@ -31,7 +32,7 @@ describe("admin/settings", () => { expect(input.prop("value")).not.toBe(siteName) // clear the site name input, send the keys corresponding to the site name, then blur to trigger the update - input.simulate('change', { target: { value: siteName } }) + setInputValue(input, siteName) input.simulate('blur') await store.waitForActions([UPDATE_SETTING]) diff --git a/frontend/test/components/PasswordReveal.unit.spec.js b/frontend/test/components/PasswordReveal.unit.spec.js index 41a1313d99a..d5ad07180ab 100644 --- a/frontend/test/components/PasswordReveal.unit.spec.js +++ b/frontend/test/components/PasswordReveal.unit.spec.js @@ -1,3 +1,5 @@ +import { click } from "__support__/enzyme_utils"; + import React from 'react' import PasswordReveal from '../../src/metabase/components/PasswordReveal' import CopyButton from 'metabase/components/CopyButton' @@ -13,7 +15,7 @@ describe('password reveal', () => { it('should toggle the visibility state when hide / show are clicked', () => { expect(wrapper.state().visible).toEqual(false) - wrapper.find('a').simulate('click') + click(wrapper.find('a')) expect(wrapper.state().visible).toEqual(true) }) diff --git a/frontend/test/components/StepIndicators.unit.spec.js b/frontend/test/components/StepIndicators.unit.spec.js index 325429d5d00..b2f6dd71665 100644 --- a/frontend/test/components/StepIndicators.unit.spec.js +++ b/frontend/test/components/StepIndicators.unit.spec.js @@ -1,3 +1,5 @@ +import { click } from "__support__/enzyme_utils"; + import React from 'react' import { shallow } from 'enzyme' import sinon from 'sinon' @@ -29,7 +31,7 @@ describe('Step indicators', () => { ) const targetIndicator = wrapper.find('li').first() - targetIndicator.simulate('click') + click(targetIndicator); expect(goToStep.calledWith(1)).toEqual(true) }) }) diff --git a/frontend/test/dashboard/dashboard.integ.spec.js b/frontend/test/dashboard/dashboard.integ.spec.js index cad4d19095e..186582917e0 100644 --- a/frontend/test/dashboard/dashboard.integ.spec.js +++ b/frontend/test/dashboard/dashboard.integ.spec.js @@ -141,14 +141,16 @@ describe("Dashboard", () => { await store.waitForActions([SET_EDITING_DASHBOARD]); click(app.find(".Icon.Icon-funneladd")); // Choose Time filter type - app.find(ParameterOptionsSection) - .filterWhere((section) => section.text().match(/Time/)) - .simulate("click"); + click( + app.find(ParameterOptionsSection) + .filterWhere((section) => section.text().match(/Time/)) + ); // Choose Relative date filter - app.find(ParameterOptionItem) - .filterWhere((item) => item.text().match(/Relative Date/)) - .simulate("click"); + click( + app.find(ParameterOptionItem) + .filterWhere((item) => item.text().match(/Relative Date/)) + ) await store.waitForActions(ADD_PARAMETER) diff --git a/frontend/test/home/NewUserOnboardingModal.unit.spec.js b/frontend/test/home/NewUserOnboardingModal.unit.spec.js index 7f88f4f3b02..5fc7b6868f3 100644 --- a/frontend/test/home/NewUserOnboardingModal.unit.spec.js +++ b/frontend/test/home/NewUserOnboardingModal.unit.spec.js @@ -1,3 +1,5 @@ +import { click } from "__support__/enzyme_utils"; + import React from 'react' import { shallow } from 'enzyme' import sinon from 'sinon' @@ -12,7 +14,7 @@ describe('new user onboarding modal', () => { const nextButton = wrapper.find('a') expect(wrapper.state().step).toEqual(1) - nextButton.simulate('click') + click(nextButton) expect(wrapper.state().step).toEqual(2) }) @@ -26,7 +28,7 @@ describe('new user onboarding modal', () => { const nextButton = wrapper.find('a') expect(nextButton.text()).toEqual('Let\'s go') - nextButton.simulate('click') + click(nextButton); expect(onClose.called).toEqual(true) }) }) diff --git a/frontend/test/modes/actions/SummarizeBySegmentMetricAction.unit.spec.js b/frontend/test/modes/actions/SummarizeBySegmentMetricAction.unit.spec.js index cdc7121830c..53862b48e50 100644 --- a/frontend/test/modes/actions/SummarizeBySegmentMetricAction.unit.spec.js +++ b/frontend/test/modes/actions/SummarizeBySegmentMetricAction.unit.spec.js @@ -5,6 +5,7 @@ import { ORDERS_TABLE_ID, metadata } from "__support__/sample_dataset_fixture"; +import { click } from "__support__/enzyme_utils" import Question from "metabase-lib/lib/Question"; import SummarizeBySegmentMetricAction from "metabase/qb/components/actions/SummarizeBySegmentMetricAction"; import { mount } from "enzyme"; @@ -72,12 +73,9 @@ describe("SummarizeBySegmentMetricAction", () => { }); const component = mount(popover); - component.find('.List-item-title[children="Sum of ..."]') - .simulate("click"); + click(component.find('.List-item-title[children="Sum of ..."]')); - component - .find('.List-item-title[children="Subtotal"]') - .simulate("click"); + click(component.find('.List-item-title[children="Subtotal"]')); }); }); }); diff --git a/frontend/test/parameters/parameters.integ.spec.js b/frontend/test/parameters/parameters.integ.spec.js index 1d3a154fe47..b57e4d2b112 100644 --- a/frontend/test/parameters/parameters.integ.spec.js +++ b/frontend/test/parameters/parameters.integ.spec.js @@ -102,7 +102,7 @@ describe("parameters", () => { await store.waitForActions([LOAD_CURRENT_USER, INITIALIZE_SETTINGS]) - app.find(EmbeddingLegalese).find('button[children="Enable"]').simulate('click'); + click(app.find(EmbeddingLegalese).find('button[children="Enable"]')); await store.waitForActions([UPDATE_SETTING]) expect(app.find(EmbeddingLegalese).length).toBe(0); @@ -165,7 +165,7 @@ describe("parameters", () => { expect(app.find(Scalar).text()).toBe(COUNT_DOOHICKEY); // save the question, required for public link/embedding - app.find(".Header-buttonSection a").first().find("a").simulate("click"); + click(app.find(".Header-buttonSection a").first().find("a")) await store.waitForActions([LOAD_COLLECTIONS]); setInputValue(app.find(SaveQuestionModal).find("input[name='name']"), "sql parametrized"); @@ -173,7 +173,7 @@ describe("parameters", () => { clickButton(app.find(SaveQuestionModal).find("button").last()); await store.waitForActions([NOTIFY_CARD_CREATED]); - app.find('#QuestionSavedModal .Button[children="Not now"]').simulate("click"); + click(app.find('#QuestionSavedModal .Button[children="Not now"]')) // wait for modal to close :'( await delay(200); @@ -186,7 +186,7 @@ describe("parameters", () => { // make the parameter editable click(app.find(".AdminSelect-content[children='Disabled']")); - app.find(".TestPopoverBody .Icon-pencil").simulate("click"); + click(app.find(".TestPopoverBody .Icon-pencil")) await delay(200); diff --git a/frontend/test/query_builder/components/dataref/FieldPane.integ.spec.js b/frontend/test/query_builder/components/dataref/FieldPane.integ.spec.js index 5b7c344fd7f..d721eafbcfe 100644 --- a/frontend/test/query_builder/components/dataref/FieldPane.integ.spec.js +++ b/frontend/test/query_builder/components/dataref/FieldPane.integ.spec.js @@ -51,7 +51,7 @@ describe("FieldPane", () => { // then we can replace this with `store.waitForActions([FETCH_TABLE_FOREIGN_KEYS])` or similar await delay(3000) - dataReference.find(`a[children="Created At"]`).first().simulate("click") + click(dataReference.find(`a[children="Created At"]`).first()) await store.waitForActions([FETCH_TABLE_METADATA]); }); @@ -65,7 +65,7 @@ describe("FieldPane", () => { // eslint-disable-line react/no-irregular-whitespace expect(getUseForButton().text()).toMatch(/Group by/); - getUseForButton().simulate('click'); + click(getUseForButton()); await store.waitForActions([QUERY_COMPLETED]); store.resetDispatchedActions() -- GitLab