diff options
| author | mo khan <mo@mokhan.ca> | 2016-06-06 18:52:09 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2016-06-06 18:52:09 -0600 |
| commit | 8c30eb5a7ece82e7d214f209685a50d455247265 (patch) | |
| tree | 1eb3e5cb3c05d5754d67d56c5e4804a179b91baf /spec/javascripts | |
| parent | 06feacde07203de972c41d4e8ed68fb5a00af7e4 (diff) | |
remove backbone model and maybe disable sets before you can start them.
Diffstat (limited to 'spec/javascripts')
| -rw-r--r-- | spec/javascripts/views/training_session_view_spec.js.coffee | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/spec/javascripts/views/training_session_view_spec.js.coffee b/spec/javascripts/views/training_session_view_spec.js.coffee new file mode 100644 index 0000000..b22a1eb --- /dev/null +++ b/spec/javascripts/views/training_session_view_spec.js.coffee @@ -0,0 +1,64 @@ +#= require views/training_session_view +describe "TrainingSessionView", -> + beforeEach -> + @el = $('<div>') + @subject = new Stronglifters.TrainingSessionView( + el: @el, + data: -> + { + id: "1", + body_weight: 225, + workout_name: "A", + exercises: [{ + name: 'Squat', + sets: 3, + repetitions: 5, + reps: [{target: 5, completed: 0}, {target: 5, completed: 1},{target: 5, completed: 2}] + target_weight: 315, + }] + } + ) + + it "has one exercise", -> + @subject.get('exercises') + expect(@subject.get('exercises').length).toEqual(1) + + it "indicates no progress recorded", -> + result = @subject.get('exercises.0.reps.0.status') + expect(result).toEqual('secondary') + + it "disables the other sets", -> + secondSetButton = @el.find('button:eq(1)') + thirdSetButton = @el.find('button:eq(2)') + expect(secondSetButton.attr('disabled')).toEqual('disabled') + expect(thirdSetButton.attr('disabled')).toEqual('disabled') + + describe "updating progress", -> + describe "when no reps are completed", -> + it "sets the reps to the target", -> + @el.find('button').first().trigger('click') + result = @subject.get('exercises.0.reps.0.completed') + expect(result).toEqual(5) + + it "indicates a successful set", -> + @el.find('button').first().trigger('click') + result = @subject.get('exercises.0.reps.0.status') + expect(result).toEqual('success') + + it "enables the next set", -> + @el.find('button').first().trigger('click') + expect(@el.find('button:eq(1)').attr('disabled')).toEqual('') + + describe "when at least one rep is completed", -> + beforeEach -> + @subject.set('exercises.0.reps.0.completed', 5) + + it 'decrements the count', -> + @el.find('button').first().trigger('click') + result = @subject.get('exercises.0.reps.0.completed') + expect(result).toEqual(4) + + it "indicates a failed set", -> + @el.find('button').first().trigger('click') + result = @subject.get('exercises.0.reps.0.status') + expect(result).toEqual('alert') |
