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