diff --git a/src/rating/test/rating.spec.js b/src/rating/test/rating.spec.js
index 614ef0a497..9a9e368db4 100644
--- a/src/rating/test/rating.spec.js
+++ b/src/rating/test/rating.spec.js
@@ -10,7 +10,16 @@ describe('rating directive', function () {
$rootScope.$digest();
}));
- function getState(stars) {
+ function getStars() {
+ return element.find('i');
+ }
+
+ function getStar(number) {
+ return getStars().eq( number - 1 );
+ }
+
+ function getState() {
+ var stars = getStars();
var state = [];
for (var i = 0, n = stars.length; i < n; i++) {
state.push( (stars.eq(i).hasClass('icon-star') && ! stars.eq(i).hasClass('icon-star-empty')) );
@@ -19,47 +28,38 @@ describe('rating directive', function () {
}
it('contains the default number of icons', function() {
- expect(element.find('i').length).toBe(5);
+ expect(getStars().length).toBe(5);
});
it('initializes the default star icons as selected', function() {
- var stars = element.find('i');
- expect(getState(stars)).toEqual([true, true, true, false, false]);
+ expect(getState()).toEqual([true, true, true, false, false]);
});
it('handles correctly the click event', function() {
- var stars = element.find('i');
-
- var star2 = stars.eq(1);
- star2.click();
+ getStar(2).click();
$rootScope.$digest();
- expect(getState(stars)).toEqual([true, true, false, false, false]);
+ expect(getState()).toEqual([true, true, false, false, false]);
expect($rootScope.rate).toBe(2);
- var star5 = stars.eq(4);
- star5.click();
+ getStar(5).click();
$rootScope.$digest();
- expect(getState(stars)).toEqual([true, true, true, true, true]);
+ expect(getState()).toEqual([true, true, true, true, true]);
expect($rootScope.rate).toBe(5);
});
it('handles correctly the hover event', function() {
- var stars = element.find('i');
-
- var star2 = stars.eq(1);
- star2.trigger('mouseover');
+ getStar(2).trigger('mouseover');
$rootScope.$digest();
- expect(getState(stars)).toEqual([true, true, false, false, false]);
+ expect(getState()).toEqual([true, true, false, false, false]);
expect($rootScope.rate).toBe(3);
- var star5 = stars.eq(4);
- star5.trigger('mouseover');
+ getStar(5).trigger('mouseover');
$rootScope.$digest();
- expect(getState(stars)).toEqual([true, true, true, true, true]);
+ expect(getState()).toEqual([true, true, true, true, true]);
expect($rootScope.rate).toBe(3);
element.trigger('mouseout');
- expect(getState(stars)).toEqual([true, true, true, false, false]);
+ expect(getState()).toEqual([true, true, true, false, false]);
expect($rootScope.rate).toBe(3);
});
@@ -67,15 +67,14 @@ describe('rating directive', function () {
$rootScope.rate = 2;
$rootScope.$digest();
- var stars = element.find('i');
- expect(getState(stars)).toEqual([true, true, false, false, false]);
+ expect(getState()).toEqual([true, true, false, false, false]);
});
it('shows different number of icons when `max` attribute is set', function() {
element = $compile('')($rootScope);
$rootScope.$digest();
- expect(element.find('i').length).toBe(7);
+ expect(getStars().length).toBe(7);
});
it('handles readonly attribute', function() {
@@ -83,37 +82,33 @@ describe('rating directive', function () {
element = $compile('')($rootScope);
$rootScope.$digest();
- var stars = element.find('i');
- expect(getState(stars)).toEqual([true, true, true, false, false]);
+ expect(getState()).toEqual([true, true, true, false, false]);
- var star5 = stars.eq(4);
+ var star5 = getStar(5);
star5.trigger('mouseover');
$rootScope.$digest();
- expect(getState(stars)).toEqual([true, true, true, false, false]);
+ expect(getState()).toEqual([true, true, true, false, false]);
$rootScope.isReadonly = false;
$rootScope.$digest();
star5.trigger('mouseover');
$rootScope.$digest();
- expect(getState(stars)).toEqual([true, true, true, true, true]);
+ expect(getState()).toEqual([true, true, true, true, true]);
});
it('should fire onHover', function() {
$rootScope.hoveringOver = jasmine.createSpy('hoveringOver');
-
element = $compile('')($rootScope);
$rootScope.$digest();
- var star3 = element.find('i').eq(2);
- star3.trigger('mouseover');
+ getStar(3).trigger('mouseover');
$rootScope.$digest();
expect($rootScope.hoveringOver).toHaveBeenCalledWith(3);
});
it('should fire onLeave', function() {
$rootScope.leaving = jasmine.createSpy('leaving');
-
element = $compile('')($rootScope);
$rootScope.$digest();
@@ -121,28 +116,23 @@ describe('rating directive', function () {
$rootScope.$digest();
expect($rootScope.leaving).toHaveBeenCalled();
});
-});
-describe('setting ratingConfig', function() {
- var $rootScope, element;
- var originalConfig = {};
- beforeEach(module('ui.bootstrap.rating'));
- beforeEach(module('template/rating/rating.html'));
- beforeEach(inject(function(_$compile_, _$rootScope_, ratingConfig) {
- $compile = _$compile_;
- $rootScope = _$rootScope_;
- $rootScope.rate = 5;
- angular.extend(originalConfig, ratingConfig);
- ratingConfig.max = 10;
- element = $compile('')($rootScope);
- $rootScope.$digest();
- }));
- afterEach(inject(function(ratingConfig) {
- // return it to the original state
- angular.extend(ratingConfig, originalConfig);
- }));
-
- it('should change number of icon elements', function () {
- expect(element.find('i').length).toBe(10);
+ describe('setting ratingConfig', function() {
+ var originalConfig = {};
+ beforeEach(inject(function(ratingConfig) {
+ $rootScope.rate = 5;
+ angular.extend(originalConfig, ratingConfig);
+ ratingConfig.max = 10;
+ element = $compile('')($rootScope);
+ $rootScope.$digest();
+ }));
+ afterEach(inject(function(ratingConfig) {
+ // return it to the original state
+ angular.extend(ratingConfig, originalConfig);
+ }));
+
+ it('should change number of icon elements', function () {
+ expect(getStars().length).toBe(10);
+ });
});
-});
\ No newline at end of file
+});