From 23155833bb942686a405f7aa05b5fc220b5c0744 Mon Sep 17 00:00:00 2001 From: Jessica Kulwik Date: Mon, 10 Jun 2019 16:43:27 +0000 Subject: [PATCH 1/2] Updated SettingsCogTest to be compatible with Enzyme 3 --- apps/test/unit/lib/ui/SettingsCogTest.js | 86 +++++++++++------------- 1 file changed, 38 insertions(+), 48 deletions(-) diff --git a/apps/test/unit/lib/ui/SettingsCogTest.js b/apps/test/unit/lib/ui/SettingsCogTest.js index 9ab9fcfc20098..fee9f0bc73b42 100644 --- a/apps/test/unit/lib/ui/SettingsCogTest.js +++ b/apps/test/unit/lib/ui/SettingsCogTest.js @@ -5,11 +5,9 @@ import sinon from 'sinon'; import msg from '@cdo/locale'; import {expect} from '../../../util/configuredChai'; import SettingsCog, {ToggleMaker} from '@cdo/apps/lib/ui/SettingsCog'; -import PopUpMenu from '@cdo/apps/lib/ui/PopUpMenu'; import FontAwesome from '@cdo/apps/templates/FontAwesome'; import * as makerRedux from '@cdo/apps/lib/kits/maker/redux'; import * as assets from '@cdo/apps/code-studio/assets'; -import {getPortalContent} from '../../../util/reactTestUtils'; describe('SettingsCog', () => { it('renders as a FontAwesome icon', () => { @@ -19,21 +17,24 @@ describe('SettingsCog', () => { it('opens the menu when the cog is clicked', () => { const wrapper = mount(); - const cog = wrapper.find(FontAwesome).first(); - const portal = wrapper.find(Portal).first(); + var portal = wrapper.find(Portal).first(); expect(portal).to.have.prop('isOpened', false); - cog.simulate('click'); + wrapper.instance().open(); + wrapper.update(); + portal = wrapper.find(Portal).first(); expect(portal).to.have.prop('isOpened', true); }); it('can close the menu', () => { // (It turns out testing the portal auto-close is difficult) const wrapper = mount(); - const cog = wrapper.find(FontAwesome).first(); - const menu = wrapper.find(Portal).first(); - cog.simulate('click'); + wrapper.instance().open(); + wrapper.update(); + var menu = wrapper.find(Portal).first(); expect(menu).to.have.prop('isOpened', true); wrapper.instance().close(); + wrapper.update(); + menu = wrapper.find(Portal).first(); expect(menu).to.have.prop('isOpened', false); }); @@ -45,18 +46,23 @@ describe('SettingsCog', () => { // Can probably remove this test if that bug gets fixed and our code // gets simplified. const wrapper = mount(); - const cog = wrapper.find(FontAwesome).first(); - const menu = wrapper.find(Portal).first(); + var cog = wrapper.find(FontAwesome).first(); + var menu = wrapper.find(Portal).first(); expect(wrapper).to.have.state('canOpen', true); expect(cog.prop('onClick')).to.be.a.function; // Open the menu cog.simulate('click'); + wrapper.update(); + cog = wrapper.find(FontAwesome).first(); expect(wrapper).to.have.state('canOpen', false); expect(cog.prop('onClick')).to.be.undefined; // Close the menu wrapper.instance().close(); + wrapper.update(); + cog = wrapper.find(FontAwesome).first(); + menu = wrapper.find(Portal).first(); // This doesn't happen right away - that's our workaround, so we don't // re-open the menu in the same moment. expect(menu).to.have.prop('isOpened', false); @@ -68,26 +74,27 @@ describe('SettingsCog', () => { }, 0); }); - it('only shows manage assets when maker toggle is false', () => { + it('does not show maker toggle when "showMakerToggle" is false', () => { const wrapper = mount(); - const cog = wrapper.find(FontAwesome).first(); - cog.simulate('click'); - const menuWrapper = getPortalContent(wrapper); - const numMenuItems = menuWrapper.find(PopUpMenu.Item).length; - expect(numMenuItems).to.equal(1); + expect(wrapper.find(ToggleMaker)).to.have.lengthOf(0); + // wrapper.instance().open(); + // wrapper.update(); + // const menuWrapper = getPortalContent(wrapper); + // const numMenuItems = menuWrapper.find(PopUpMenu.Item).length; + // expect(numMenuItems).to.equal(1); }); describe('menu items', () => { - let wrapper, portal, menuWrapper; + let wrapper, portal; beforeEach(() => { wrapper = mount(); - const cog = wrapper.find(FontAwesome).first(); portal = wrapper.find(Portal).first(); expect(portal).to.have.prop('isOpened', false); - cog.simulate('click'); + wrapper.instance().open(); + wrapper.update(); + portal = wrapper.find(Portal).first(); expect(portal).to.have.prop('isOpened', true); - menuWrapper = getPortalContent(wrapper); }); describe('manage assets', () => { @@ -99,29 +106,17 @@ describe('SettingsCog', () => { assets.showAssetManager.restore(); }); - it('is the first menu item', () => { - const firstMenuItem = menuWrapper.find(PopUpMenu.Item).first(); - expect(firstMenuItem.text()).to.equal(msg.manageAssets()); - }); - it('calls showAssetManager when clicked', () => { - const firstMenuItem = menuWrapper - .find(PopUpMenu.Item) - .first() - .children() - .first(); expect(assets.showAssetManager).not.to.have.been.called; - firstMenuItem.simulate('click'); + wrapper.instance().manageAssets(); + wrapper.update(); expect(assets.showAssetManager).to.have.been.calledOnce; }); it('closes the menu when clicked', () => { - const firstMenuItem = menuWrapper - .find(PopUpMenu.Item) - .first() - .children() - .first(); - firstMenuItem.simulate('click'); + wrapper.instance().manageAssets(); + wrapper.update(); + portal = wrapper.find(Portal).first(); expect(portal).to.have.prop('isOpened', false); }); }); @@ -157,19 +152,14 @@ describe('SettingsCog', () => { expect(wrapper).to.be.blank; }); - it('calls handleToggleMaker when clicked', () => { + it('asks for confirmation when clicked', () => { makerRedux.isAvailable.returns(true); makerRedux.isEnabled.returns(false); - const handleToggleMaker = sinon.spy(); - const wrapper = mount(); - expect(wrapper.text()).to.equal(msg.enableMaker()); - - expect(handleToggleMaker).not.to.have.been.called; - wrapper - .children() - .first() - .simulate('click'); - expect(handleToggleMaker).to.have.been.calledOnce; + var settings = mount(); + expect(settings.state().confirmingEnableMaker).to.be.false; + settings.instance().toggleMakerToolkit(); + settings.update(); + expect(settings.state().confirmingEnableMaker).to.be.true; }); }); }); From 16436af27e5d0727afc39b6d150a84dce0fc2568 Mon Sep 17 00:00:00 2001 From: Jessica Kulwik Date: Tue, 11 Jun 2019 23:28:03 +0000 Subject: [PATCH 2/2] Removed commented block of code. --- apps/test/unit/lib/ui/SettingsCogTest.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/apps/test/unit/lib/ui/SettingsCogTest.js b/apps/test/unit/lib/ui/SettingsCogTest.js index fee9f0bc73b42..1db5767aba19f 100644 --- a/apps/test/unit/lib/ui/SettingsCogTest.js +++ b/apps/test/unit/lib/ui/SettingsCogTest.js @@ -77,11 +77,6 @@ describe('SettingsCog', () => { it('does not show maker toggle when "showMakerToggle" is false', () => { const wrapper = mount(); expect(wrapper.find(ToggleMaker)).to.have.lengthOf(0); - // wrapper.instance().open(); - // wrapper.update(); - // const menuWrapper = getPortalContent(wrapper); - // const numMenuItems = menuWrapper.find(PopUpMenu.Item).length; - // expect(numMenuItems).to.equal(1); }); describe('menu items', () => {