require 'spec_helper' describe 'traversal' do describe '#current_step' do context 'when first step' do before(:all){ @controller = Base::StepOneController.new } it 'should get step' do get :show expect(subject.current_step.label).to eq 'Step 1' end end context 'when middle step' do before(:all){ @controller = Base::StepTwoController.new } it 'should get step' do get :show expect(subject.current_step.label).to eq 'Step 2' end end context 'when last step' do before(:all){ @controller = Base::StepThreeController.new } it 'should get step' do get :show expect(subject.current_step.label).to eq 'Step 3' end end end describe '#current_step_index' do context 'when first step' do before(:all){ @controller = Base::StepOneController.new } it 'should get step' do get :show expect(subject.current_step_index).to eq 0 end end context 'when middle step' do before(:all){ @controller = Base::StepTwoController.new } it 'should get step' do get :show expect(subject.current_step_index).to eq 1 end end context 'when last step' do before(:all){ @controller = Base::StepThreeController.new } it 'should get step' do get :show expect(subject.current_step_index).to eq 2 end end end describe '#current_step_name' do context 'when first step' do before(:all){ @controller = Base::StepOneController.new } it 'should get step' do get :show expect(subject.current_step_name).to eq :step_one end end context 'when middle step' do before(:all){ @controller = Base::StepTwoController.new } it 'should get step' do get :show expect(subject.current_step_name).to eq :step_two end end context 'when last step' do before(:all){ @controller = Base::StepThreeController.new } it 'should get step' do get :show expect(subject.current_step_name).to eq :step_three end end end describe '#previous_step' do context 'when first step' do before(:all){ @controller = Base::StepOneController.new } it 'should be nil' do get :show expect(subject.previous_step).to be_nil end end context 'when middle step' do before(:all){ @controller = Base::StepTwoController.new } it 'should get step' do get :show expect(subject.previous_step.label).to eq 'Step 1' end end context 'when last step' do before(:all){ @controller = Base::StepThreeController.new } it 'should get step' do get :show expect(subject.previous_step.label).to eq 'Step 2' end end end describe '#previous_step_index' do context 'when first step' do before(:all){ @controller = Base::StepOneController.new } it 'should be nil' do get :show expect(subject.previous_step_index).to be_nil end end context 'when middle step' do before(:all){ @controller = Base::StepTwoController.new } it 'should get step' do get :show expect(subject.previous_step_index).to eq 0 end end context 'when last step' do before(:all){ @controller = Base::StepThreeController.new } it 'should get step' do get :show expect(subject.previous_step_index).to eq 1 end end end describe '#previous_step_name' do context 'when first step' do before(:all){ @controller = Base::StepOneController.new } it 'should be nil' do get :show expect(subject.previous_step_name).to be_nil end end context 'when middle step' do before(:all){ @controller = Base::StepTwoController.new } it 'should get step' do get :show expect(subject.previous_step_name).to eq :step_one end end context 'when last step' do before(:all){ @controller = Base::StepThreeController.new } it 'should get step' do get :show expect(subject.previous_step_name).to eq :step_two end end end describe '#next_step' do context 'when first step' do before(:all){ @controller = Base::StepOneController.new } it 'should get step' do get :show expect(subject.next_step.label).to eq 'Step 2' end end context 'when middle step' do before(:all){ @controller = Base::StepTwoController.new } it 'should get step' do get :show expect(subject.next_step.label).to eq 'Step 3' end end context 'when last step' do before(:all){ @controller = Base::StepThreeController.new } it 'should be nil' do get :show expect(subject.next_step).to be_nil end end end describe '#next_step_index' do context 'when first step' do before(:all){ @controller = Base::StepOneController.new } it 'should get step' do get :show expect(subject.next_step_index).to eq 1 end end context 'when middle step' do before(:all){ @controller = Base::StepTwoController.new } it 'should get step' do get :show expect(subject.next_step_index).to eq 2 end end context 'when last step' do before(:all){ @controller = Base::StepThreeController.new } it 'should be nil' do get :show expect(subject.next_step_index).to be_nil end end end describe '#next_step_name' do context 'when first step' do before(:all){ @controller = Base::StepOneController.new } it 'should get step' do get :show expect(subject.next_step_name).to eq :step_two end end context 'when middle step' do before(:all){ @controller = Base::StepTwoController.new } it 'should get step' do get :show expect(subject.next_step_name).to eq :step_three end end context 'when last step' do before(:all){ @controller = Base::StepThreeController.new } it 'should be nil' do get :show expect(subject.next_step_name).to be_nil end end end end