office-ui-fabric-react
Version:
Reusable React components for building experiences for Office 365.
76 lines (74 loc) • 3.26 kB
JavaScript
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