daphne-jr commented on issue #4403: Test case not passing when callbacks are 
used in DateFilterControl_spec.jsx + a repeated test case
URL: 
https://github.com/apache/incubator-superset/issues/4403#issuecomment-364896693
 
 
   After trying for some time today, this is my crude solution. Hope it helps 
someone and perhaps someone else would have a better solution.
   ```
   import React from 'react';
   import sinon from 'sinon';
   import { expect } from 'chai';
   import { describe, it, beforeEach } from 'mocha';
   import { mount } from 'enzyme';
   
   import DateFilterControl from 
'../../../../javascripts/explore/components/controls/DateFilterControl';
   import ControlHeader from 
'../../../../javascripts/explore/components/ControlHeader';
   
   const defaultProps = {
     animation: false,
     name: 'date',
     onChange: sinon.spy(),
     value: '90 days ago',
     label: 'date',
   };
   
   describe('DateFilterControl', () => {
     let wrapper;
   
     beforeEach(() => {
       wrapper = mount(<DateFilterControl {...defaultProps} />);
     });
   
     afterEach(() => {
       wrapper.unmount();
     })
   
     it('renders a ControlHeader', () => {
       const controlHeader = wrapper.find(ControlHeader);
       expect(controlHeader).to.have.lengthOf(1);
     });
   
     it('renders 3 Buttons', () => {
       const label = wrapper.find(OverlayTrigger).first();
       label.simulate('click');
       expect(document.getElementsByTagName("Button").length).to.be.equal(3);
     });
   
     it('loads the right state', () => {
       const label = wrapper.find('.label').first();
       label.simulate('click');
       expect(wrapper.state().num).to.equal('90');
     });
   
     it('renders 2 dimmed sections', () => {
       const label = wrapper.find('.label').first();
       expect(document.getElementsByClassName('PopoverSection 
dimmed').length).to.be.equal(0);
       label.simulate('click');
       expect(document.getElementsByClassName('PopoverSection 
dimmed').length).to.be.equal(2);
     });
   
     it('opens and closes', (done) => {
       const label = wrapper.find('.label').first();
       label.simulate('click');
       expect(document.getElementsByClassName('popover').length).to.be.equal(1);
       document.getElementsByClassName('ok')[0].click();
       setTimeout(() => {
         
expect(document.getElementsByClassName('popover').length).to.be.equal(0);
         done();
       }, 10);
     });
   
   });
   ```

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to