40 lines
1.7 KiB
Ruby
40 lines
1.7 KiB
Ruby
require 'rails_helper'
|
|
|
|
RSpec.describe Public::ContractTemplatesController, type: :controller do
|
|
render_views
|
|
|
|
let(:account) { create(:account, name: "Dev Account") }
|
|
let(:project) { create(:project, account: account) }
|
|
let(:contract_templates) { create_list(:contract_template, 20, project: project) }
|
|
|
|
describe '#index' do
|
|
it 'responds successfully' do
|
|
get :index, params: { project_id: project, account_id: project.account, contract_template_ids: contract_templates.map(&:id) }
|
|
|
|
expect(response).to be_successful
|
|
end
|
|
|
|
it 'renders content if there are contract templates' do
|
|
contract_template = create(:contract_template,
|
|
name: 'My Contract Template', fee: 50, release_type: 'appearance',
|
|
project: project)
|
|
sign_path = new_account_project_contract_template_appearance_release_path(project.account, project, contract_template)
|
|
sign_url = new_account_project_contract_template_appearance_release_url(project.account, project, contract_template)
|
|
|
|
get :index, params: { project_id: project, account_id: project.account, contract_template_ids: [contract_template.id] }
|
|
|
|
expect(response.body).to have_content('My Contract Template')
|
|
expect(response.body).to have_link('Sign', href: sign_path)
|
|
end
|
|
|
|
context 'when there are many records' do
|
|
it 'paginates the table' do
|
|
get :index, params: { project_id: project, account_id: project.account, contract_template_ids: contract_templates.map(&:id) }
|
|
|
|
expect(response.body).to have_link('2', href: account_project_contract_templates_path(project.account, project, contract_template_ids: contract_templates.map(&:id), page: 2))
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|