CSC/ECE 517 Fall 2021 - E2134. Write unit tests for admin controller.rb and institution controller.rb: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
Line 14: Line 14:




==== <font size = '3'>Scenario 1: </font> ====
==== <font size = '3'>Role 1: admin1</font> ====
<p>Tested tasks allowed:</p>
#Remove an instructor


#Lists all the instructors


==== <font size = '3'>Scenario 2: </font> ====
<p>Teste tasks that are not allowed:</p>
#Remove an administrator


==== <font size = '3'>Role 2: admin2</font> ====
The data of admin 2 is used for super admin to test functions such as list administrators, etc.


==== <font size = '3'>Scenario 3: </font> ====
==== <font size = '3'>Role 3: super_admin</font> ====
Super admin should be able to perform all the tasks other types of users can do.


==== <font size = '3'>Role 4: instructor1</font> ====
<p>Tested tasks that are not allowed and will return false:</p>
#List all instructors
#Remove an instructor
#Remove administrator
==== <font size = '3'>Role 5: instructor2</font> ====
The data of instructor 2 is used to test functions such as list instructors, etc.
==== <font size = '3'>Role 6: student1</font> ====
Student should not be able to perform any tasks within the admin controller.
<p>Tested tasks that are not allowed and will return false:</p>
#List all instructors
#Remove an instructor
#Remove an administrator


==== <font size = '3'> Scenario 4:</font> ====




Line 31: Line 54:
describe AdminController do
describe AdminController do
   # create fake users
   # create fake users
   let(:admin1) { build(:admin, id: 3, role_id: 4) }
   let(:admin1) { build(:admin, id: 3, role_id: 4, parent_id: 1, name: 'Administrator1') }
   let(:admin2) { build(:admin, id: 4, role_id: 4) }
   let(:admin2) { build(:admin, id: 4, role_id: 4, parent_id: 1, name: 'Administrator2') }
   let(:super_admin) { build(:superadmin, id: 1, role_id: 5) }
   let(:super_admin) { build(:superadmin, id: 1, role_id: 5) }
   let(:instructor1) { build(:instructor, id: 10, role_id: 2) }
   let(:instructor1) { build(:instructor, id: 10, role_id: 3, parent_id: 3, name: 'Instructor1') }
   let(:instructor2) { build(:instructor, id: 11, role_id: 2) }
   let(:instructor2) { build(:instructor, id: 11, role_id: 3, parent_id: 4, name: 'Instructor2') }
   let(:student1) { build(:student, id: 21, role_id: 1) }
   let(:student1) { build(:student, id: 21, role_id: 1) }


  # create fake lists
  let(:admin_list) { [admin1, admin2] }
  let(:instructor_list) { [instructor1, instructor2] }
  let(:instructor_list_pid3) { [instructor1] }
  let(:instructor_list_pid4) { [instructor2] }
  # define default behaviors for each method call
   before(:each) do
   before(:each) do
     allow(User).to receive(find).with('3').and_return(admin1)
     allow(User).to receive(:find).with('3').and_return(admin1)
     allow(User).to receive(find).with('1').and_return(super_admin)
     allow(User).to receive(:find).with('1').and_return(super_admin)
     allow(User).to receive(find).with('10').and_return(instructor1)
     allow(User).to receive(:find).with('10').and_return(instructor1)
     allow(User).to receive(find).with('21').and_return(student1)
     allow(User).to receive(:where).with(["role_id = ?", super_admin.role_id]).and_return([ super_admin ])
     allow(User).to receive(where).with(:role_id => 4).and_return([ admin1, admin2 ])
 
     allow(User).to receive(where).with(:role_id => 5).and_return([ super_admin ])
     allow(User).to receive(:where).with(role_id: admin1.role).and_return(admin_list)
     allow(User).to receive(where).with(:role_id => 2).and_return([ instructor1, instructor2 ])
     allow(admin_list).to receive(:order).with(:name).and_return(admin_list)
     allow(Role).to recieve(superadministrator).to receive(id).and_return(5)
     allow(admin_list).to receive(:where).with("parent_id = ?", super_admin.id).and_return(admin_list)
     allow(Role).to recieve(administrator).to receive(id).and_return(4)
     allow(admin_list).to receive(:paginate).with(page: '1', per_page: 50).and_return(admin_list)
     allow(Role).to recieve(instructor).to receive(id).and_return(2)
 
    allow(User).to receive(:where).with(role_id: instructor1.role).and_return(instructor_list)
     allow(instructor_list).to receive(:order).with(:name).and_return(instructor_list)
    allow(instructor_list).to receive(:where).with("parent_id = ?", admin1.id).and_return(instructor_list_pid3)
     allow(instructor_list_pid3).to receive(:paginate).with(page: '1', per_page: 50).and_return(instructor_list_pid3)
   end
   end


Line 59: Line 93:
       context 'when the role of current user is Admin' do
       context 'when the role of current user is Admin' do
         it 'allows certain action' do
         it 'allows certain action' do
          user = admin1
           stub_current_user(admin1, admin1.role.name, admin1.role)
           stub_current_user(user, user.role.name, user.role)
           (controller.send(:action_allowed?)).should be true
           expect(controller.send(:action_allowed?)).to be true
         end
         end
       end
       end
Line 67: Line 100:
       context 'when the role of current user is Super-Admin' do
       context 'when the role of current user is Super-Admin' do
         it 'allows certain action' do
         it 'allows certain action' do
          user = super_admin
           stub_current_user(super_admin, super_admin.role.name, super_admin.role)
           stub_current_user(user, user.role.name, user.role)
           (controller.send(:action_allowed?)).should be true
           expect(controller.send(:action_allowed?)).to be true
         end
         end
       end
       end
Line 75: Line 107:
       context 'when the role of current user is Instructor' do
       context 'when the role of current user is Instructor' do
         it 'refuses certain action' do
         it 'refuses certain action' do
          user = instructor1
           stub_current_user(instructor1, instructor1.role.name, instructor1.role)
           stub_current_user(user, user.role.name, user.role)
           (controller.send(:action_allowed?)).should be false
           expect(controller.send(:action_allowed?)).to be false
         end
         end
       end
       end
Line 83: Line 114:
       context 'when the role of current user is Student' do
       context 'when the role of current user is Student' do
         it 'refuses certain action' do
         it 'refuses certain action' do
          user = student1
           stub_current_user(student1, student1.role.name, student1.role)
           stub_current_user(user, user.role.name, user.role)
           (controller.send(:action_allowed?)).should be false
           expect(controller.send(:action_allowed?)).to be false
         end
         end
       end
       end
Line 97: Line 127:
       context 'when the role of current user is Admin' do
       context 'when the role of current user is Admin' do
         it 'allows certain action' do
         it 'allows certain action' do
          user = admin1
           stub_current_user(admin1, admin1.role.name, admin1.role)
           stub_current_user(user, user.role.name, user.role)
           (controller.send(:action_allowed?)).should be true
           expect(controller.send(:action_allowed?)).to be true
         end
         end
       end
       end
Line 105: Line 134:
       context 'when the role of current user is Super-Admin' do
       context 'when the role of current user is Super-Admin' do
         it 'allows certain action' do
         it 'allows certain action' do
          user = super_admin
           stub_current_user(super_admin, super_admin.role.name, super_admin.role)
           stub_current_user(user, user.role.name, user.role)
           (controller.send(:action_allowed?)).should be true
           expect(controller.send(:action_allowed?)).to be true
         end
         end
       end
       end
Line 113: Line 141:
       context 'when the role of current user is Instructor' do
       context 'when the role of current user is Instructor' do
         it 'refuses certain action' do
         it 'refuses certain action' do
          user = instructor1
           stub_current_user(instructor1, instructor1.role.name, instructor1.role)
           stub_current_user(user, user.role.name, user.role)
           (controller.send(:action_allowed?)).should be false
           expect(controller.send(:action_allowed?)).to be false
         end
         end
       end
       end
Line 121: Line 148:
       context 'when the role of current user is Student' do
       context 'when the role of current user is Student' do
         it 'refuses certain action' do
         it 'refuses certain action' do
          user = student1
           stub_current_user(student1, student1.role.name, student1.role)
           stub_current_user(user, user.role.name, user.role)
           (controller.send(:action_allowed?)).should be false
           expect(controller.send(:action_allowed?)).to be false
         end
         end
       end
       end
@@ -87,48 +103,87 @@
    end
 
    context 'when params action is other than list and remove instructors' do
      before(:each) do
        controller.params = {:action => 'remove_administrator'}
       end
       end


       context 'when the role of current user is Admin' do
       context 'when the role of current user is Admin' do
         it 'refuses certain action' do
         it 'refuses certain action' do
           user = admin1
           stub_current_user(admin1, admin1.role.name, admin1.role)
           expect(controller.send(:action_allowed?)).to be false
           (controller.send(:action_allowed?)).should be false
         end
         end
       end
       end
Line 138: Line 168:
       context 'when the role of current user is Super-Admin' do
       context 'when the role of current user is Super-Admin' do
         it 'allows certain action' do
         it 'allows certain action' do
          user = super_admin
           stub_current_user(super_admin, super_admin.role.name, super_admin.role)
           stub_current_user(user, user.role.name, user.role)
           (controller.send(:action_allowed?)).should be true
           expect(controller.send(:action_allowed?)).to be true
         end
         end
       end
       end
Line 146: Line 175:
       context 'when the role of current user is Instructor' do
       context 'when the role of current user is Instructor' do
         it 'refuses certain action' do
         it 'refuses certain action' do
          user = instructor1
           stub_current_user(instructor1, instructor1.role.name, instructor1.role)
           stub_current_user(user, user.role.name, user.role)
           (controller.send(:action_allowed?)).should be false
           expect(controller.send(:action_allowed?)).to be false
         end
         end
       end
       end
Line 154: Line 182:
       context 'when the role of current user is Student' do
       context 'when the role of current user is Student' do
         it 'refuses certain action' do
         it 'refuses certain action' do
          user = student1
           stub_current_user(student1, student1.role.name, student1.role)
           stub_current_user(user, user.role.name, user.role)
           (controller.send(:action_allowed?)).should be false
           expect(controller.send(:action_allowed?)).to be false
         end
         end
       end
       end
Line 162: Line 189:
   end
   end


  context '#list_super_administrators' do
  context '#list_super_administrators' do
    it 'list all the Super-Administrators and render #list' do
    it 'lists all the Super-Administrators' do
      get :list_super_administrators
      stub_current_user(super_admin, super_admin.role.name, super_admin.role)
      expect(@user).to eql([ super_admin ])
      get :list_super_administrators
      expect(response).to render_template(list_super_administrators)
      expect(assigns(:users)).to eq([ super_admin ])
    end
    end
  end
  end


   context '#show_super_administrator' do
   context '#show_super_administrator' do
     it 'find selected Super-Administrator and render #show' do
     it 'find selected Super-Administrator and render #show' do
       controller.params = {id: '1'}
       stub_current_user(super_admin, super_admin.role.name, super_admin.role)
       controller.send(:show_super_administrators)
      params = {id: '1'}
       expect(@user).to eql(super_admin)
       get :show_super_administrator, params
       expect(@role).to eql(5)
       expect(assigns(:user)).to eq(super_admin)
       expect(response).to render_template(show_super_administrator)
       expect(assigns(:role)).to eq(super_admin.role)
       expect(response).to render_template(:show_super_administrator)
     end
     end
   end
   end


   context '#list_administrators' do
   context '#list_administrators' do
     it 'list all the admins and render #list' do
     it 'lists all the admins' do
       get :list_administrators
      stub_current_user(super_admin, super_admin.role.name, super_admin.role)
       expect(response).to render_template(list_administrators)
      params = {page: '1'}
       get :list_administrators, params
       expect(assigns(:users)).to eq(admin_list)
     end
     end
   end
   end
Line 189: Line 219:
   context '#show_administrator' do
   context '#show_administrator' do
     it 'find selected admin and render #show' do
     it 'find selected admin and render #show' do
       controller.params = {id: '3'}
       stub_current_user(super_admin, super_admin.role.name, super_admin.role)
       controller.send(:show_administrator)
      params = {id: '3'}
       expect(@user).to eql(admin1)
       get :show_administrator, params
       expect(@role).to eql(4)
       expect(assigns(:user)).to eq(admin1)
       expect(response).to render_template(show_administrator)
       expect(assigns(:role)).to eq(admin1.role)
       expect(response).to render_template(:show_administrator)
     end
     end
   end
   end


   context '#list_instructors' do
   context '#list_instructors' do
     it 'list all the instructors and render #list' do
     it 'lists all the instructors' do
       get :list_instructors
      stub_current_user(admin1, admin1.role.name, admin1.role)
       expect(response).to render_template(list_instructors)
      params = {page: '1'}
       get :list_instructors, params
       expect(assigns(:users)).to eq(instructor_list_pid3)
     end
     end
   end
   end


   context '#show_instructors' do
   context '#show_instructor' do
     it 'find selected instructor and render #show' do
     it 'find selected instructor and render #show' do
       controller.params = {id: '10'}
       stub_current_user(super_admin, super_admin.role.name, super_admin.role)
       controller.send(:show_instructor)
      params = {id: '10'}
       expect(@user).to eql(instructor1)
       get :show_instructor, params
       expect(@role).to eql(2)
       expect(assigns(:user)).to eq(instructor1)
       expect(response).to render_template(show_instructor)
       expect(assigns(:role)).to eq(instructor1.role)
       expect(response).to render_template(:show_instructor)
     end
     end
   end
   end

Revision as of 18:31, 13 October 2021



E2134. Write unit tests for admin controller.rb and institution controller.rb

This page is a description of Expertiza OSS project E2134. Write unit tests for admin controller.rb and institution controller.rb

Problem Statement and Background

Expertiza allows authorized users to create/edit/delete information of institutions and for the admin to create/edit/delete information of instructors. The repository lacks systematic unit tests for both the admin controller and institution controller. We designed unit tests for these controllers based on several scenarios.

Implementation

Admin_controller

Role 1: admin1

Tested tasks allowed:

  1. Remove an instructor
  1. Lists all the instructors

Teste tasks that are not allowed:

  1. Remove an administrator

Role 2: admin2

The data of admin 2 is used for super admin to test functions such as list administrators, etc.

Role 3: super_admin

Super admin should be able to perform all the tasks other types of users can do.

Role 4: instructor1

Tested tasks that are not allowed and will return false:

  1. List all instructors
  2. Remove an instructor
  3. Remove administrator

Role 5: instructor2

The data of instructor 2 is used to test functions such as list instructors, etc.

Role 6: student1

Student should not be able to perform any tasks within the admin controller.

Tested tasks that are not allowed and will return false:

  1. List all instructors
  2. Remove an instructor
  3. Remove an administrator


Code Snippet

#spec/controllers/admin_controller_spec.rb
describe AdminController do
  # create fake users
  let(:admin1) { build(:admin, id: 3, role_id: 4, parent_id: 1, name: 'Administrator1') }
  let(:admin2) { build(:admin, id: 4, role_id: 4, parent_id: 1, name: 'Administrator2') }
  let(:super_admin) { build(:superadmin, id: 1, role_id: 5) }
  let(:instructor1) { build(:instructor, id: 10, role_id: 3, parent_id: 3, name: 'Instructor1') }
  let(:instructor2) { build(:instructor, id: 11, role_id: 3, parent_id: 4, name: 'Instructor2') }
  let(:student1) { build(:student, id: 21, role_id: 1) }

  # create fake lists
  let(:admin_list) { [admin1, admin2] }
  let(:instructor_list) { [instructor1, instructor2] }
  let(:instructor_list_pid3) { [instructor1] }
  let(:instructor_list_pid4) { [instructor2] }

  # define default behaviors for each method call
  before(:each) do
    allow(User).to receive(:find).with('3').and_return(admin1)
    allow(User).to receive(:find).with('1').and_return(super_admin)
    allow(User).to receive(:find).with('10').and_return(instructor1)
    allow(User).to receive(:where).with(["role_id = ?", super_admin.role_id]).and_return([ super_admin ])

    allow(User).to receive(:where).with(role_id: admin1.role).and_return(admin_list)
    allow(admin_list).to receive(:order).with(:name).and_return(admin_list)
    allow(admin_list).to receive(:where).with("parent_id = ?", super_admin.id).and_return(admin_list)
    allow(admin_list).to receive(:paginate).with(page: '1', per_page: 50).and_return(admin_list)

    allow(User).to receive(:where).with(role_id: instructor1.role).and_return(instructor_list)
    allow(instructor_list).to receive(:order).with(:name).and_return(instructor_list)
    allow(instructor_list).to receive(:where).with("parent_id = ?", admin1.id).and_return(instructor_list_pid3)
    allow(instructor_list_pid3).to receive(:paginate).with(page: '1', per_page: 50).and_return(instructor_list_pid3)
  end

  describe '#action_allowed?' do
    context 'when params action is list all instructors' do
      before(:each) do
        controller.params = {action: 'list_instructors'}
      end

      context 'when the role of current user is Admin' do
        it 'allows certain action' do
          stub_current_user(admin1, admin1.role.name, admin1.role)
          (controller.send(:action_allowed?)).should be true
        end
      end

      context 'when the role of current user is Super-Admin' do
        it 'allows certain action' do
          stub_current_user(super_admin, super_admin.role.name, super_admin.role)
          (controller.send(:action_allowed?)).should be true
        end
      end

      context 'when the role of current user is Instructor' do
        it 'refuses certain action' do
          stub_current_user(instructor1, instructor1.role.name, instructor1.role)
          (controller.send(:action_allowed?)).should be false
        end
      end

      context 'when the role of current user is Student' do
        it 'refuses certain action' do
          stub_current_user(student1, student1.role.name, student1.role)
          (controller.send(:action_allowed?)).should be false
        end
      end
    end

    context 'when params action is remove an instructor' do
      before(:each) do
        controller.params = {action: 'remove_instructor'}
      end

      context 'when the role of current user is Admin' do
        it 'allows certain action' do
          stub_current_user(admin1, admin1.role.name, admin1.role)
          (controller.send(:action_allowed?)).should be true
        end
      end

      context 'when the role of current user is Super-Admin' do
        it 'allows certain action' do
          stub_current_user(super_admin, super_admin.role.name, super_admin.role)
          (controller.send(:action_allowed?)).should be true
        end
      end

      context 'when the role of current user is Instructor' do
        it 'refuses certain action' do
          stub_current_user(instructor1, instructor1.role.name, instructor1.role)
          (controller.send(:action_allowed?)).should be false
        end
      end

      context 'when the role of current user is Student' do
        it 'refuses certain action' do
          stub_current_user(student1, student1.role.name, student1.role)
          (controller.send(:action_allowed?)).should be false
        end
      end
    end

    context 'when params action is other than list and remove instructors' do
      before(:each) do
        controller.params = {:action => 'remove_administrator'}
      end

      context 'when the role of current user is Admin' do
        it 'refuses certain action' do
          stub_current_user(admin1, admin1.role.name, admin1.role)
          (controller.send(:action_allowed?)).should be false
        end
      end

      context 'when the role of current user is Super-Admin' do
        it 'allows certain action' do
          stub_current_user(super_admin, super_admin.role.name, super_admin.role)
          (controller.send(:action_allowed?)).should be true
        end
      end

      context 'when the role of current user is Instructor' do
        it 'refuses certain action' do
          stub_current_user(instructor1, instructor1.role.name, instructor1.role)
          (controller.send(:action_allowed?)).should be false
        end
      end

      context 'when the role of current user is Student' do
        it 'refuses certain action' do
          stub_current_user(student1, student1.role.name, student1.role)
          (controller.send(:action_allowed?)).should be false
        end
      end
    end
  end

   context '#list_super_administrators' do
     it 'lists all the Super-Administrators' do
       stub_current_user(super_admin, super_admin.role.name, super_admin.role)
       get :list_super_administrators
       expect(assigns(:users)).to eq([ super_admin ])
     end
   end

  context '#show_super_administrator' do
    it 'find selected Super-Administrator and render #show' do
      stub_current_user(super_admin, super_admin.role.name, super_admin.role)
      params = {id: '1'}
      get :show_super_administrator, params
      expect(assigns(:user)).to eq(super_admin)
      expect(assigns(:role)).to eq(super_admin.role)
      expect(response).to render_template(:show_super_administrator)
    end
  end

  context '#list_administrators' do
    it 'lists all the admins' do
      stub_current_user(super_admin, super_admin.role.name, super_admin.role)
      params = {page: '1'}
      get :list_administrators, params
      expect(assigns(:users)).to eq(admin_list)
    end
  end

  context '#show_administrator' do
    it 'find selected admin and render #show' do
      stub_current_user(super_admin, super_admin.role.name, super_admin.role)
      params = {id: '3'}
      get :show_administrator, params
      expect(assigns(:user)).to eq(admin1)
      expect(assigns(:role)).to eq(admin1.role)
      expect(response).to render_template(:show_administrator)
    end
  end

  context '#list_instructors' do
    it 'lists all the instructors' do
      stub_current_user(admin1, admin1.role.name, admin1.role)
      params = {page: '1'}
      get :list_instructors, params
      expect(assigns(:users)).to eq(instructor_list_pid3)
    end
  end

  context '#show_instructor' do
    it 'find selected instructor and render #show' do
      stub_current_user(super_admin, super_admin.role.name, super_admin.role)
      params = {id: '10'}
      get :show_instructor, params
      expect(assigns(:user)).to eq(instructor1)
      expect(assigns(:role)).to eq(instructor1.role)
      expect(response).to render_template(:show_instructor)
    end
  end
end

Institution_controller

Scenario 1:

Scenario 2:

Scenario 3:

Scenario 4:

Code Snippet

require 'rails_helper'
describe InstitutionController do
  let(:admin) { build(:admin) }
  let(:instructor) { build(:instructor, id: 6) }
  let(:instructor2) { build(:instructor, id: 66) }
  let(:ta) { build(:teaching_assistant, id: 8) }
  let(:student) { build(:student) }

  # create fake data
  let(:institution) do
    build(:institution, id: 1, name: 'test institution')
  end

  let(:course) do
    build(:course, instructor_id: 6, institutions_id:1, name: 'abc')
  end

  # set default testing user
  before(:each) do
    allow(Institution).to receive(:find).with('1').and_return(institution)
    allow(Course).to receive(:where).with(institution_id: '1').and_return(course)
    stub_current_user(instructor, instructor.role.name, instructor.role)
  end
  describe '#action_allowed?' do

    context 'when params action is edit or update' do
      before(:each) do
        controller.params = {id: '1', action: 'edit'}
      end

      context 'when the role name of current user is super admin or admin' do
        it 'allows certain action' do
          stub_current_user(admin, admin.role.name, admin.role)
          (controller.send(:action_allowed?)).should be true
        end
      end

      context 'when current user is the instructor' do
        it 'allows certain action' do
          stub_current_user(instructor, instructor.role.name, instructor.role)
          (controller.send(:action_allowed?)).should be true
        end
      end

      context 'when current user is the TAs or the students' do
        it 'deny certain action if current user is the TA' do
          stub_current_user(ta, ta.role.name, ta.role)
          (controller.send(:action_allowed?)).should be false
        end

        it 'deny certain action if current user is the student' do
          stub_current_user(student, student.role.name, student.role)
          (controller.send(:action_allowed?)).should be false
        end
      end
    end
  end

  describe '#new' do
    it 'creates a new Institution object and renders institution#new page' do
      get :new
      expect(response).to render_template(:new)
    end
  end

  describe '#create' do
    context 'when institution is saved successfully' do
      it 'redirects to institution#list page' do
        allow(institution).to receive(:name).and_return("test institution")
        @params = {
            institution: {
                name: "test institution"
            }
        }
        post :create, @params
        expect(response).to redirect_to("/institution/list")
      end
    end

    context 'when institution is not saved successfully' do
      it 'renders institution#new page' do
        allow(institution).to receive(:save).and_return(false)
        @params = {
            institution: {
                name: ""
            }
        }
        post :create, @params
        expect(flash.now[:error]).to eq('The creation of the institution failed.')
        expect(response).to render_template(:new)
      end
    end
  end
  describe '#edit' do
    it 'renders institution#edit' do
      @params = {
          id: 1
      }
      get :edit, @params
      expect(response).to render_template(:edit)
    end
  end

  describe '#update' do
    context 'when institution is updated successfully' do
      it 'renders institution#list' do
        @params = {
            id:1,
            institution: {
                name: "test institution"
            }
        }
        put :update, @params
        expect(response).to redirect_to("/institution/list")
      end
    end
  end

  describe '#index' do
    context 'when institution query all institution' do
      it 'renders institution#list' do
        get :index
        expect(response).to render_template(:list)
      end
    end
  end

  describe '#show' do
    context 'when try to show a institution' do
      it 'renders institution#show when find the target institution' do
        @params = {
            id:1
        }
        get :show, @params
        expect(response).to render_template(:show)
      end
    end
  end

  describe '#delete' do
    context 'when try to delete a institution' do
      it 'renders institution#list when delete successfully' do
        @params = {
            id:1
        }
        post :delete, @params, session
        expect(response).to redirect_to("/institution/list")
      end
    end
  end
end 

Our Team

References

Expertiza on GitHub click here

To visit our forked repo, click here

View our pull request click here