Skip to content
This repository has been archived by the owner on Jun 3, 2020. It is now read-only.

Commit

Permalink
Merge f8accc2 into caf30ef
Browse files Browse the repository at this point in the history
  • Loading branch information
jaebradley committed Dec 27, 2016
2 parents caf30ef + f8accc2 commit 8d76964
Show file tree
Hide file tree
Showing 8 changed files with 87 additions and 8 deletions.
2 changes: 1 addition & 1 deletion src/data/GameScoring.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@ let defaults = {

export default class GameScoring extends Record(defaults) {
getPeriodValues() {
return this.periods.map(periodScore => periodScore.formatPeriod());
return List(this.periods.map(periodScore => periodScore.formatPeriod()));
}
}
3 changes: 2 additions & 1 deletion src/data/PeriodScore.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import {Record} from 'immutable';
import Score from './Score';
import PeriodFormatter from '../services/PeriodFormatter';

let defaults = {
period: 1,
Expand All @@ -8,6 +9,6 @@ let defaults = {

export default class PeriodScore extends Record(defaults){
formatPeriod() {
return this.period > 4 ? `OT${this.period - 4}` : `Q${this.period}`;
return PeriodFormatter.format(this.period);
}
};
9 changes: 3 additions & 6 deletions src/data/Play.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import {Record} from 'immutable';

import PeriodFormatter from '../services/PeriodFormatter';

let defaults = {
description: '',
clock: '',
Expand All @@ -11,11 +13,6 @@ let defaults = {

export default class Play extends Record(defaults) {
formatPeriod() {
let value = this.period - 4;
if (value > 0) {
return 'OT'.concat(value);
}

return 'Q'.concat(this.period);
return PeriodFormatter.format(this.period);
}
}
9 changes: 9 additions & 0 deletions src/services/PeriodFormatter.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
'use es6';

export default class PeriodFormatter {
static format(period) {
return period > 4
? `OT${period - 4}`
: `Q${period}`;
}
}
31 changes: 31 additions & 0 deletions test/GameScoringTest.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
'use es6';

import chai from 'chai';
import chaiImmutable from 'chai-immutable';
import {List} from 'immutable';

import GameScoring from '../src/data/GameScoring';
import PeriodScore from '../src/data/PeriodScore';
import Score from '../src/data/Score';

chai.use(chaiImmutable);

let expect = chai.expect;

describe('Game Scoring Test', function() {
let periodScore = new PeriodScore({
period: 1,
score: new Score({
home: 2,
away: 3
})
});
let periods = List.of(periodScore, periodScore);
let gameScoring = new GameScoring({
periods: periods
});
it('should get period values', function() {
let expected = List.of('Q1', 'Q1');
expect(gameScoring.getPeriodValues()).to.eql(expected);
})
});
12 changes: 12 additions & 0 deletions test/PeriodFormatterTest.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
'use es6';

import {expect} from 'chai';

import PeriodFormatter from '../src/services/PeriodFormatter';

describe('Test Period Formatter', function() {
it('should test period formatting', function() {
expect(PeriodFormatter.format(1)).to.equal('Q1');
expect(PeriodFormatter.format(5)).to.equal('OT1');
});
});
19 changes: 19 additions & 0 deletions test/PeriodScoreTest.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
'use es6';

import {expect} from 'chai';

import PeriodScore from '../src/data/PeriodScore';
import Score from '../src/data/Score';

describe('Period Score Test', function() {
let overtimePeriod = new PeriodScore({
period: 5,
});
let nonOvertimePeriod = new PeriodScore({
period: 2
});
it('should test period score formatting', function() {
expect(overtimePeriod.formatPeriod()).to.equal('OT1');
expect(nonOvertimePeriod.formatPeriod()).to.equal('Q2');
});
});
10 changes: 10 additions & 0 deletions test/Team.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,14 @@ describe('Team model', function() {

expect(customTeam.getName()).to.equal('city nickname');
});

it('get formatted team abbreviation', function() {
let bostonCeltics = new Team({
city: 'Boston',
nickname: 'Celtics',
abbreviation: 'BOS'
});

expect(bostonCeltics.getFormattedTeamAbbreviation()).to.eql('BOS 🍀');
});
});

0 comments on commit 8d76964

Please sign in to comment.