office-ui-fabric-react
Version:
Reusable React components for building experiences for Office 365.
32 lines (31 loc) • 1.79 kB
JavaScript
define(["require", "exports", 'react', 'react-dom', 'react-addons-test-utils', './Toggle'], function (require, exports, React, ReactDOM, ReactTestUtils, Toggle_1) {
"use strict";
var expect = chai.expect;
describe('Toggle', function () {
it('renders a label', function () {
var component = ReactTestUtils.renderIntoDocument(React.createElement(Toggle_1.Toggle, {label: 'Label'}));
var renderedDOM = ReactDOM.findDOMNode(component);
var labelElement = renderedDOM.querySelector('.ms-Toggle-label');
expect(labelElement.textContent).to.equal('Label');
});
it('can call the callback on a change of toggle', function () {
var isToggledValue;
var callback = function (isToggled) {
isToggledValue = isToggled;
};
var component = ReactTestUtils.renderIntoDocument(React.createElement(Toggle_1.Toggle, {label: 'Label', onChanged: callback}));
var renderedDOM = ReactDOM.findDOMNode(component);
var button = renderedDOM.querySelector('.ms-Toggle-button');
ReactTestUtils.Simulate.click(button);
expect(isToggledValue).to.equal(true);
expect(component.state.isChecked).to.equal(true);
});
it("doesn't update the state if the user provides checked", function () {
var component = ReactTestUtils.renderIntoDocument(React.createElement(Toggle_1.Toggle, {label: 'Label', checked: false}));
var renderedDOM = ReactDOM.findDOMNode(component);
var button = renderedDOM.querySelector('.ms-Toggle-button');
ReactTestUtils.Simulate.click(button);
expect(component.state.isChecked).to.equal(false);
});
});
});