Sha256: 26c44db186482cad9560368d3858433e09ccb4d3abf19b9a501c65690853dbd3

Contents?: true

Size: 1.89 KB

Versions: 2

Compression:

Stored size: 1.89 KB

Contents

require 'spec_helper'

module FinePrint
  describe SignaturesController, type: :controller do
    routes { FinePrint::Engine.routes }

    before(:each) do
      setup_controller_spec
    end

    let!(:signature) { FactoryGirl.create(:fine_print_signature) }

    it "won't get index unless authorized" do
      get :index, contract_id: signature.contract.id
      expect(response.status).to eq 403
      
      sign_in @user
      get :index, contract_id: signature.contract.id
      expect(response.status).to eq 403
    end
    
    it 'must get index if authorized' do
      sign_in @admin
      get :index, contract_id: signature.contract.id
      expect(response.status).to eq 200
    end

    it "won't get new unless signed in" do
      get :new, contract_id: signature.contract.id
      expect(response.status).to eq 401
    end
    
    it 'must get new if signed in' do
      sign_in @user
      get :new, contract_id: signature.contract.id
      expect(response.status).to eq 200
    end

    it "won't create unless signed in" do
      post :create, contract_id: signature.contract.id
      expect(response.status).to eq 401
    end
    
    it 'must create if signed in' do
      sign_in @user
      get :new, contract_id: signature.contract.id
      expect(response.status).to eq 200
    end

    it "won't destroy unless authorized" do
      delete :destroy, id: signature.id
      expect(response.status).to eq 403
      expect(Signature.find(signature.id)).to eq signature
      
      sign_in @user
      delete :destroy, id: signature.id
      expect(response.status).to eq 403
      expect(Signature.find(signature.id)).to eq signature
    end
    
    it 'must destroy if authorized' do
      sign_in @admin
      delete :destroy, id: signature.id
      expect(response).to redirect_to contract_signatures_path(signature.contract)
      expect(Signature.find_by_id(signature.id)).to be_nil
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
fine_print-3.1.0 spec/controllers/signatures_controller_spec.rb
fine_print-3.0.0 spec/controllers/signatures_controller_spec.rb