summaryrefslogtreecommitdiff
path: root/spec/javascripts
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2016-06-06 18:52:09 -0600
committermo khan <mo@mokhan.ca>2016-06-06 18:52:09 -0600
commit8c30eb5a7ece82e7d214f209685a50d455247265 (patch)
tree1eb3e5cb3c05d5754d67d56c5e4804a179b91baf /spec/javascripts
parent06feacde07203de972c41d4e8ed68fb5a00af7e4 (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.coffee64
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')