add specs

This commit is contained in:
Bilal
2020-07-14 09:05:10 +02:00
parent 7d4ff7cdb8
commit bc1ff4cf39
5 changed files with 245 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
# frozen_string_literal: true
require 'rails_helper'
describe ContractTemplates::DuplicatesController do
let(:account) { build(:account) }
let(:current_user) { create(:user, :manager, primary_account: account) }
let(:project) { create(:project, members: [current_user], account: account) }
before do
sign_in(current_user)
end
describe '#create' do
it "responds with redirect to the edit page for newly created duplicate" do
contract_template = create(:contract_template, project: project)
expect do
post :create, params: { contract_template_id: contract_template }
end.to change(ContractTemplate, :count).by(1)
new_ct = ContractTemplate.last
expect(new_ct.name).to eq t('contract_templates.duplicate.name_prefix', template_name: contract_template.name)
expect(new_ct.release_type).to eq contract_template.release_type
expect(response).to redirect_to [:edit, new_ct]
end
end
end

View File

@@ -118,6 +118,57 @@ describe ContractTemplatesController do
end
end
describe '#edit' do
let(:contract_template) do
create(:contract_template,
name: 'My Contract Template', fee: 50, release_type: 'appearance',
project: project)
end
it 'responds ok' do
get :edit, params: { project_id: project, id: contract_template }
expect(response).to be_successful
end
context 'when current user is an associate' do
let(:current_user) { create(:user, :associate) }
it 'raises exception' do
expect do
get :edit, params: { project_id: project, id: contract_template }
end.to raise_error(Pundit::NotAuthorizedError)
end
end
end
describe '#update' do
let(:contract_template) do
create(:contract_template,
name: 'My Contract Template', fee: 50, release_type: 'appearance',
project: project)
end
it 'redirects' do
patch :update, params: { project_id: project, id: contract_template, contract_template: contract_template_params }
expect(response).to redirect_to(project_contract_templates_path(project))
end
context 'when current user is an associate' do
let(:current_user) { create(:user, :associate) }
it 'raises exception' do
expect do
patch :update, params: { project_id: project, id: contract_template, contract_template: contract_template_params }
end.to raise_error(Pundit::NotAuthorizedError)
end
end
end
describe '#destroy' do
let!(:contract_template) { create(:contract_template, project: project) }