Skip to content
This repository was archived by the owner on Mar 4, 2025. It is now read-only.

Commit ef888c4

Browse files
committed
Merge pull request #8 from appirio-tech/peer-review-unit-tests
Add unit tests for review-status and challenge service
2 parents 3e21bc4 + f29760f commit ef888c4

File tree

6 files changed

+292
-14
lines changed

6 files changed

+292
-14
lines changed

app/index.jade

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ html
1818
link(rel="stylesheet", href="assets/css/account/account.css")
1919
link(rel="stylesheet", href="assets/css/account/login.css")
2020
link(rel="stylesheet", href="assets/css/account/register.css")
21+
link(rel="stylesheet", href="assets/css/layout/footer.css")
22+
link(rel="stylesheet", href="assets/css/layout/header.css")
2123
link(rel="stylesheet", href="assets/css/peer-review/completed.css")
2224
link(rel="stylesheet", href="assets/css/peer-review/edit.css")
2325
link(rel="stylesheet", href="assets/css/peer-review/peer-review.css")
2426
link(rel="stylesheet", href="assets/css/peer-review/readOnlyScorecard.css")
2527
link(rel="stylesheet", href="assets/css/peer-review/reviewStatus.css")
26-
link(rel="stylesheet", href="assets/css/layout/footer.css")
27-
link(rel="stylesheet", href="assets/css/layout/header.css")
2828
//- endinject
2929
// endbuild
3030
@@ -63,8 +63,8 @@ html
6363
script(src="account/account.module.js")
6464
script(src="layout/layout.module.js")
6565
script(src="peer-review/peer-review.module.js")
66-
script(src="account/account.routes.js")
6766
script(src="filters/local-time.filter.js")
67+
script(src="account/account.routes.js")
6868
script(src="peer-review/peer-review.routes.js")
6969
script(src="peer-review/slideable.directive.js")
7070
script(src="services/api.service.js")
@@ -80,10 +80,10 @@ html
8080
script(src="account/register/register.controller.js")
8181
script(src="layout/header/header.controller.js")
8282
script(src="peer-review/completed-review/completed-review.controller.js")
83-
script(src="peer-review/edit-review/edit-review.controller.js")
8483
script(src="peer-review/readOnlyScorecard/readOnlyScorecard.controller.js")
8584
script(src="peer-review/review-status/review-status.controller.js")
8685
script(src="peer-review/review-status/review-status.filter.js")
86+
script(src="peer-review/edit-review/edit-review.controller.js")
8787
//- endinject
8888
8989
// inject:templates.js

app/peer-review/review-status/review-status.controller.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
vm.loaded = false;
1313
vm.challengeId = $stateParams.challengeId;
1414
vm.challenge = null;
15+
1516
vm.getNextReview = function() {
1617
if (vm.reviews.length >= 5) {
1718
alert('You may only complete 5 reviews.');
Lines changed: 53 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,82 @@
11
/* jshint -W117, -W030 */
22
describe('Review Status Controller', function() {
33
var controller;
4+
var challenge = mockData.getMockChallenge();
5+
var challengeDates = mockData.getMockChallengeDates();
6+
var userReviews = mockData.getMockUsersPeerReviews();
47

58
beforeEach(function() {
69
bard.appModule('topcoder');
710
bard.inject(this, '$controller', '$rootScope', '$q');
811

9-
controller = $controller('ReviewStatusController');
10-
$rootScope.$apply();
12+
var challengeService = {
13+
getChallengeDetails: function() {
14+
return $q.when(challenge);
15+
},
16+
getReviewEndDate: function() {
17+
return $q.when(challengeDates);
18+
}
19+
};
20+
var reviewService = {
21+
getUsersPeerReviews: function() {
22+
return $q.when(userReviews);
23+
}
24+
};
25+
26+
var stateParams = {
27+
challengeId: 123
28+
};
29+
30+
controller = $controller('ReviewStatusController', {
31+
challenge: challengeService,
32+
review: reviewService,
33+
$stateParams: stateParams
34+
});
1135
});
1236

13-
// bard.verifyNoOutstandingHttpRequests();
37+
bard.verifyNoOutstandingHttpRequests();
1438

1539
it('should be created successfully', function() {
16-
expect(controller).to.be.defined;
40+
expect(controller).to.exist;
1741
});
1842

1943
it('should have a submissionDownloadPath property set', function() {
2044
expect(controller.submissionDownloadPath).to.equal('/review/actions/DownloadContestSubmission?uid=');
2145
});
2246

2347
it('should have a domain property', function() {
24-
expect(controller.domain).to.be.defined;
48+
expect(controller.domain).to.exist;
2549
});
2650
it('should have a loaded property', function() {
27-
expect(controller.loaded).to.be.defined;
51+
expect(controller.loaded).to.exist;
2852
});
2953
it('should have a challengeId property', function() {
30-
expect(controller.challengeId).to.be.defined;
54+
expect(controller.challengeId).to.exist;
3155
});
3256

3357
it('should have challenge set to null', function() {
3458
expect(controller.challenge).to.be.null;
3559
});
60+
61+
describe('after activation', function() {
62+
beforeEach(function() {
63+
$rootScope.$apply();
64+
});
65+
66+
it('should get a challenge', function() {
67+
expect(controller.challenge).to.exist;
68+
expect(controller.challenge.challengeName).to.equal(challenge.data.challengeName);
69+
});
70+
71+
it('should have a user\'s reviews', function() {
72+
expect(controller.reviews).to.exist;
73+
expect(controller.reviews).to.have.length(5);
74+
});
75+
76+
it('should know when the reviews are due', function() {
77+
expect(controller.reviewsDue).to.exist;
78+
expect(controller.reviewsDue).to.equal('2015-05-01T04:00Z');
79+
});
80+
});
81+
3682
});
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/* jshint -W117, -W030 */
2+
describe('Challenge Service', function() {
3+
var challengeData = mockData.getMockChallenge();
4+
var apiUrl = 'https://api.topcoder-dev.com/v2';
5+
6+
beforeEach(function() {
7+
bard.appModule('topcoder');
8+
bard.inject(this, '$httpBackend', '$q', 'challenge');
9+
});
10+
11+
it('exists', function() {
12+
expect(challenge).to.exist;
13+
});
14+
15+
it('getChallengeDetails returns challenge information', function() {
16+
$httpBackend
17+
.when('GET', apiUrl + '/challenges/' + 123456)
18+
.respond(200, [{}]);
19+
20+
challenge.getChallengeDetails(123456).then(function(data) {
21+
expect(data).to.exist;
22+
})
23+
$httpBackend.flush();
24+
});
25+
26+
it('getChallengeDetails returns error information', function() {
27+
$httpBackend
28+
.when('GET', apiUrl + '/challenges/' + 123456)
29+
.respond(500, {message: 'there was an error'});
30+
31+
challenge.getChallengeDetails(123456).catch(function(error) {
32+
console.log(error);
33+
expect(error.data.message).to.match(/error/);
34+
})
35+
$httpBackend.flush();
36+
});
37+
38+
});

app/specs.html

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,8 @@ <h1><a href="specs.html">Spec Runner</a></h1>
8383
<script src="/app/services/review.service.js"></script>
8484
<script src="/app/services/scorecard.service.js"></script>
8585
<script src="/app/services/user.service.js"></script>
86-
<script src="/app/account/register/register.controller.js"></script>
8786
<script src="/app/account/login/login.controller.js"></script>
87+
<script src="/app/account/register/register.controller.js"></script>
8888
<script src="/app/layout/header/header.controller.js"></script>
8989
<script src="/app/peer-review/completed-review/completed-review.controller.js"></script>
9090
<script src="/app/peer-review/edit-review/edit-review.controller.js"></script>
@@ -98,8 +98,9 @@ <h1><a href="specs.html">Spec Runner</a></h1>
9898
<!-- endinject -->
9999

100100
<!-- inject:specs:js -->
101-
<script src="/app/account/register/register.spec.js"></script>
101+
<script src="/app/services/challenge.service.spec.js"></script>
102102
<script src="/app/account/login/login.spec.js"></script>
103+
<script src="/app/account/register/register.spec.js"></script>
103104
<script src="/app/peer-review/completed-review/completed-review.spec.js"></script>
104105
<script src="/app/peer-review/edit-review/edit-review.spec.js"></script>
105106
<script src="/app/peer-review/readOnlyScorecard/readOnlyScorecard.spec.js"></script>

0 commit comments

Comments
 (0)