Skip to content

Commit

Permalink
added unit tests for workout
Browse files Browse the repository at this point in the history
  • Loading branch information
abarnhard committed Jan 8, 2015
1 parent e452cd2 commit edd9718
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 42 deletions.
62 changes: 20 additions & 42 deletions server/models/workout.js
Original file line number Diff line number Diff line change
Expand Up @@ -72,22 +72,8 @@ Workout.getWorkouts = function(obj, cb){
// console.log(err, results.rows);
async.mapSeries(results.rows, function(wk, finished){
// console.log(wk);
async.map(wk.setIds, function(setId, done){
pg.query('SELECT * FROM query_set($1)', [setId], function(err, results){
if(err){return done(err, null);}
var rawSet = results.rows[0],
set = {setId:rawSet.setId, rest:rawSet.rest, count:rawSet.count};
set.exercises = rebuildExercises(rawSet);
done(err, set);
});
}, function(err, sets){
delete wk.setIds;
wk.sets = sets;
finished(null, wk);
});
}, function(err, workouts){
cb(err, workouts);
});
populateSets(wk, finished);
}, cb);
});
};

Expand All @@ -104,19 +90,7 @@ Workout.findByDay = function(obj, cb){
// console.log(err, results);
if(err || !results.rows.length){return cb(err || 'ERROR: NO WORKOUT FOUND FOR DAY ID', null);}
var wk = results.rows[0];
async.map(wk.setIds, function(setId, done){
pg.query('SELECT * FROM query_set($1)', [setId], function(err, results){
if(err){return done(err, null);}
var rawSet = results.rows[0],
set = {setId:rawSet.setId, rest:rawSet.rest, count:rawSet.count};
set.exercises = rebuildExercises(rawSet);
done(err, set);
});
}, function(err, sets){
delete wk.setIds;
wk.sets = sets;
cb(err, wk);
});
populateSets(wk, cb);
});
};

Expand All @@ -125,25 +99,29 @@ Workout.findById = function(obj, cb){
// console.log(err, results);
if(err || !results.rows.length){return cb(err || 'ERROR: NO WORKOUT FOUND WITH THAT ID', null);}
var wk = results.rows[0];
async.map(wk.setIds, function(setId, done){
pg.query('SELECT * FROM query_set($1)', [setId], function(err, results){
if(err){return done(err, null);}
var rawSet = results.rows[0],
set = {setId:rawSet.setId, rest:rawSet.rest, count:rawSet.count};
set.exercises = rebuildExercises(rawSet);
done(err, set);
});
}, function(err, sets){
delete wk.setIds;
wk.sets = sets;
cb(err, wk);
});
populateSets(wk, cb);
});
};

module.exports = Workout;

// HELPER FUNCTIONS //
function populateSets(wk, cb){
async.map(wk.setIds, function(setId, done){
pg.query('SELECT * FROM query_set($1)', [setId], function(err, results){
if(err){return done(err, null);}
var rawSet = results.rows[0],
set = {setId:rawSet.setId, rest:rawSet.rest, count:rawSet.count};
set.exercises = rebuildExercises(rawSet);
done(err, set);
});
}, function(err, sets){
delete wk.setIds;
wk.sets = sets;
cb(err, wk);
});
}

function rebuildExercises(obj){
var exercises = obj.exerciseIds.map(function(id, i){
var exercise = {
Expand Down
13 changes: 13 additions & 0 deletions test/unit/workout.js
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,19 @@ describe('Workout', function(){
});
});

describe('.findById', function(){
it('should find a workout by it\'s Id', function(done){
var wkId = 1,
input = {wkId: wkId};

Workout.findById(input, function(err, wk){
expect(err).to.not.be.ok;
expect(wk.sets).to.have.length(2);
done();
});
});
});

});
/*
describe('', function(){
Expand Down

0 comments on commit edd9718

Please sign in to comment.