diff --git a/.gitignore b/.gitignore index aeaa49cddc..8e796ee552 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ *.pyc +yarn-error.log +_modules superset/assets/coverage/* changelog.sh .DS_Store diff --git a/superset/assets/javascripts/dashboard/Dashboard.jsx b/superset/assets/javascripts/dashboard/Dashboard.jsx index 6f9d6de56e..cda9e1e44e 100644 --- a/superset/assets/javascripts/dashboard/Dashboard.jsx +++ b/superset/assets/javascripts/dashboard/Dashboard.jsx @@ -74,7 +74,7 @@ function initDashboardView(dashboard) { $('[data-toggle="tooltip"]').tooltip({ container: 'body' }); } -function dashboardContainer(dashboard) { +export function dashboardContainer(dashboard) { return Object.assign({}, dashboard, { type: 'dashboard', filters: {}, diff --git a/superset/assets/javascripts/dashboard/components/Controls.jsx b/superset/assets/javascripts/dashboard/components/Controls.jsx index 15afca9da7..b4cf96616c 100644 --- a/superset/assets/javascripts/dashboard/components/Controls.jsx +++ b/superset/assets/javascripts/dashboard/components/Controls.jsx @@ -10,14 +10,9 @@ import CodeModal from './CodeModal'; import SliceAdder from './SliceAdder'; const propTypes = { - table: React.PropTypes.object, dashboard: React.PropTypes.object.isRequired, }; -const defaultProps = { - actions: {}, -}; - class Controls extends React.PureComponent { constructor(props) { super(props); @@ -138,6 +133,5 @@ class Controls extends React.PureComponent { } } Controls.propTypes = propTypes; -Controls.defaultProps = defaultProps; export default Controls; diff --git a/superset/assets/spec/javascripts/dashboard/CodeModal_spec.jsx b/superset/assets/spec/javascripts/dashboard/CodeModal_spec.jsx new file mode 100644 index 0000000000..5a430bc3d5 --- /dev/null +++ b/superset/assets/spec/javascripts/dashboard/CodeModal_spec.jsx @@ -0,0 +1,21 @@ +import React from 'react'; +import CodeModal from '../../../javascripts/dashboard/components/CodeModal'; +import { mount } from 'enzyme'; +import { describe, it } from 'mocha'; +import { expect } from 'chai'; + + +describe('CodeModal', () => { + const mockedProps = { + triggerNode: , + }; + it('is valid', () => { + expect( + React.isValidElement() + ).to.equal(true); + }); + it('renders the trigger node', () => { + const wrapper = mount(); + expect(wrapper.find('.fa-edit')).to.have.length(1); + }); +}); diff --git a/superset/assets/spec/javascripts/dashboard/CssEditor_spec.jsx b/superset/assets/spec/javascripts/dashboard/CssEditor_spec.jsx new file mode 100644 index 0000000000..58cac9d868 --- /dev/null +++ b/superset/assets/spec/javascripts/dashboard/CssEditor_spec.jsx @@ -0,0 +1,21 @@ +import React from 'react'; +import CssEditor from '../../../javascripts/dashboard/components/CssEditor'; +import { mount } from 'enzyme'; +import { describe, it } from 'mocha'; +import { expect } from 'chai'; + + +describe('CssEditor', () => { + const mockedProps = { + triggerNode: , + }; + it('is valid', () => { + expect( + React.isValidElement() + ).to.equal(true); + }); + it('renders the trigger node', () => { + const wrapper = mount(); + expect(wrapper.find('.fa-edit')).to.have.length(1); + }); +}); diff --git a/superset/assets/spec/javascripts/dashboard/RefreshIntervalModal_spec.jsx b/superset/assets/spec/javascripts/dashboard/RefreshIntervalModal_spec.jsx new file mode 100644 index 0000000000..8cf89be8da --- /dev/null +++ b/superset/assets/spec/javascripts/dashboard/RefreshIntervalModal_spec.jsx @@ -0,0 +1,21 @@ +import React from 'react'; +import RefreshIntervalModal from '../../../javascripts/dashboard/components/RefreshIntervalModal'; +import { mount } from 'enzyme'; +import { describe, it } from 'mocha'; +import { expect } from 'chai'; + + +describe('RefreshIntervalModal', () => { + const mockedProps = { + triggerNode: , + }; + it('is valid', () => { + expect( + React.isValidElement() + ).to.equal(true); + }); + it('renders the trigger node', () => { + const wrapper = mount(); + expect(wrapper.find('.fa-edit')).to.have.length(1); + }); +});