UNPKG

office-ui-fabric-react

Version:

Reusable React components for building experiences for Office 365.

76 lines (74 loc) 3.26 kB
define(["require", "exports", "react", "react-dom", "react-addons-test-utils", "./Rating"], function (require, exports, React, ReactDOM, ReactTestUtils, Rating_1) { "use strict"; var expect = chai.expect; 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