UNPKG

office-ui-fabric-react

Version:

Reusable React components for building experiences for Office 365.

80 lines (78 loc) 3.05 kB
"use strict"; /* tslint:disable:no-unused-variable */ var React = require("react"); /* tslint:enable:no-unused-variable */ var ReactDOM = require("react-dom"); var ReactTestUtils = require("react-addons-test-utils"); var expect = chai.expect; var Rating_1 = require("./Rating"); describe('Rating', function () { it('Can change rating.', function () { var exception; var threwException = false; var rating; try { rating = ReactTestUtils.renderIntoDocument(React.createElement(Rating_1.Rating, { rating: 2 })); } catch (e) { exception = e; threwException = true; } expect(threwException).to.be.false; var renderedDOM = ReactDOM.findDOMNode(rating); var ratingInputs = renderedDOM.querySelectorAll('.ms-Rating-input'); var checkState = function (ratingToCheck, state) { expect(ratingInputs[ratingToCheck - 1].checked).to.be.eq(state, "Rating " + ratingToCheck + " should be " + (!state && 'selected' || '') + " selected"); }; checkState(1, false); checkState(2, true); checkState(3, false); checkState(4, false); checkState(5, false); ReactTestUtils.Simulate.change(ratingInputs[0]); checkState(1, true); checkState(2, false); checkState(3, false); checkState(4, false); checkState(5, false); }); it('Clamps input rating to allowed range.', function () { var exception; var threwException = false; var rating; try { rating = ReactTestUtils.renderIntoDocument(React.createElement(Rating_1.Rating, { rating: 10 })); } catch (e) { exception = e; threwException = true; } expect(threwException).to.be.false; var renderedDOM = ReactDOM.findDOMNode(rating); var ratingInputs = renderedDOM.querySelectorAll('.ms-Rating-input'); expect(ratingInputs[0].checked).to.be.eq(false); expect(ratingInputs[1].checked).to.be.eq(false); expect(ratingInputs[2].checked).to.be.eq(false); expect(ratingInputs[3].checked).to.be.eq(false); expect(ratingInputs[4].checked).to.be.eq(true); }); it('When rating is disabled cannot change rating', function () { var exception; var threwException = false; var choiceGroup; try { choiceGroup = ReactTestUtils.renderIntoDocument(React.createElement(Rating_1.Rating, { disabled: true })); } catch (e) { exception = e; threwException = true; } expect(threwException).to.be.false; var renderedDOM = ReactDOM.findDOMNode(choiceGroup); var choiceOptions = renderedDOM.querySelectorAll('.ms-Rating-input'); for (var i = 0; i < 5; ++i) { expect(choiceOptions[i].disabled).to.be.eq(true, "Rating " + (i + 1) + " is not disabled"); } }); }); //# sourceMappingURL=Rating.test.js.map