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

Add unit tests for review-status and challenge service #8

Merged
merged 1 commit into from
Jun 29, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions app/index.jade
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@ html
link(rel="stylesheet", href="assets/css/account/account.css")
link(rel="stylesheet", href="assets/css/account/login.css")
link(rel="stylesheet", href="assets/css/account/register.css")
link(rel="stylesheet", href="assets/css/layout/footer.css")
link(rel="stylesheet", href="assets/css/layout/header.css")
link(rel="stylesheet", href="assets/css/peer-review/completed.css")
link(rel="stylesheet", href="assets/css/peer-review/edit.css")
link(rel="stylesheet", href="assets/css/peer-review/peer-review.css")
link(rel="stylesheet", href="assets/css/peer-review/readOnlyScorecard.css")
link(rel="stylesheet", href="assets/css/peer-review/reviewStatus.css")
link(rel="stylesheet", href="assets/css/layout/footer.css")
link(rel="stylesheet", href="assets/css/layout/header.css")
//- endinject
// endbuild

Expand Down Expand Up @@ -63,8 +63,8 @@ html
script(src="account/account.module.js")
script(src="layout/layout.module.js")
script(src="peer-review/peer-review.module.js")
script(src="account/account.routes.js")
script(src="filters/local-time.filter.js")
script(src="account/account.routes.js")
script(src="peer-review/peer-review.routes.js")
script(src="peer-review/slideable.directive.js")
script(src="services/api.service.js")
Expand All @@ -80,10 +80,10 @@ html
script(src="account/register/register.controller.js")
script(src="layout/header/header.controller.js")
script(src="peer-review/completed-review/completed-review.controller.js")
script(src="peer-review/edit-review/edit-review.controller.js")
script(src="peer-review/readOnlyScorecard/readOnlyScorecard.controller.js")
script(src="peer-review/review-status/review-status.controller.js")
script(src="peer-review/review-status/review-status.filter.js")
script(src="peer-review/edit-review/edit-review.controller.js")
//- endinject

// inject:templates.js
Expand Down
1 change: 1 addition & 0 deletions app/peer-review/review-status/review-status.controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
vm.loaded = false;
vm.challengeId = $stateParams.challengeId;
vm.challenge = null;

vm.getNextReview = function() {
if (vm.reviews.length >= 5) {
alert('You may only complete 5 reviews.');
Expand Down
60 changes: 53 additions & 7 deletions app/peer-review/review-status/review-status.spec.js
Original file line number Diff line number Diff line change
@@ -1,36 +1,82 @@
/* jshint -W117, -W030 */
describe('Review Status Controller', function() {
var controller;
var challenge = mockData.getMockChallenge();
var challengeDates = mockData.getMockChallengeDates();
var userReviews = mockData.getMockUsersPeerReviews();

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

controller = $controller('ReviewStatusController');
$rootScope.$apply();
var challengeService = {
getChallengeDetails: function() {
return $q.when(challenge);
},
getReviewEndDate: function() {
return $q.when(challengeDates);
}
};
var reviewService = {
getUsersPeerReviews: function() {
return $q.when(userReviews);
}
};

var stateParams = {
challengeId: 123
};

controller = $controller('ReviewStatusController', {
challenge: challengeService,
review: reviewService,
$stateParams: stateParams
});
});

// bard.verifyNoOutstandingHttpRequests();
bard.verifyNoOutstandingHttpRequests();

it('should be created successfully', function() {
expect(controller).to.be.defined;
expect(controller).to.exist;
});

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

it('should have a domain property', function() {
expect(controller.domain).to.be.defined;
expect(controller.domain).to.exist;
});
it('should have a loaded property', function() {
expect(controller.loaded).to.be.defined;
expect(controller.loaded).to.exist;
});
it('should have a challengeId property', function() {
expect(controller.challengeId).to.be.defined;
expect(controller.challengeId).to.exist;
});

it('should have challenge set to null', function() {
expect(controller.challenge).to.be.null;
});

describe('after activation', function() {
beforeEach(function() {
$rootScope.$apply();
});

it('should get a challenge', function() {
expect(controller.challenge).to.exist;
expect(controller.challenge.challengeName).to.equal(challenge.data.challengeName);
});

it('should have a user\'s reviews', function() {
expect(controller.reviews).to.exist;
expect(controller.reviews).to.have.length(5);
});

it('should know when the reviews are due', function() {
expect(controller.reviewsDue).to.exist;
expect(controller.reviewsDue).to.equal('2015-05-01T04:00Z');
});
});

});
38 changes: 38 additions & 0 deletions app/services/challenge.service.spec.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
/* jshint -W117, -W030 */
describe('Challenge Service', function() {
var challengeData = mockData.getMockChallenge();
var apiUrl = 'https://api.topcoder-dev.com/v2';

beforeEach(function() {
bard.appModule('topcoder');
bard.inject(this, '$httpBackend', '$q', 'challenge');
});

it('exists', function() {
expect(challenge).to.exist;
});

it('getChallengeDetails returns challenge information', function() {
$httpBackend
.when('GET', apiUrl + '/challenges/' + 123456)
.respond(200, [{}]);

challenge.getChallengeDetails(123456).then(function(data) {
expect(data).to.exist;
})
$httpBackend.flush();
});

it('getChallengeDetails returns error information', function() {
$httpBackend
.when('GET', apiUrl + '/challenges/' + 123456)
.respond(500, {message: 'there was an error'});

challenge.getChallengeDetails(123456).catch(function(error) {
console.log(error);
expect(error.data.message).to.match(/error/);
})
$httpBackend.flush();
});

});
5 changes: 3 additions & 2 deletions app/specs.html
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,8 @@ <h1><a href="specs.html">Spec Runner</a></h1>
<script src="/app/services/review.service.js"></script>
<script src="/app/services/scorecard.service.js"></script>
<script src="/app/services/user.service.js"></script>
<script src="/app/account/register/register.controller.js"></script>
<script src="/app/account/login/login.controller.js"></script>
<script src="/app/account/register/register.controller.js"></script>
<script src="/app/layout/header/header.controller.js"></script>
<script src="/app/peer-review/completed-review/completed-review.controller.js"></script>
<script src="/app/peer-review/edit-review/edit-review.controller.js"></script>
Expand All @@ -98,8 +98,9 @@ <h1><a href="specs.html">Spec Runner</a></h1>
<!-- endinject -->

<!-- inject:specs:js -->
<script src="/app/account/register/register.spec.js"></script>
<script src="/app/services/challenge.service.spec.js"></script>
<script src="/app/account/login/login.spec.js"></script>
<script src="/app/account/register/register.spec.js"></script>
<script src="/app/peer-review/completed-review/completed-review.spec.js"></script>
<script src="/app/peer-review/edit-review/edit-review.spec.js"></script>
<script src="/app/peer-review/readOnlyScorecard/readOnlyScorecard.spec.js"></script>
Expand Down
Loading