You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
docuseal/spec/models/submission_spec.rb

48 lines
1.7 KiB

# frozen_string_literal: true
RSpec.describe Submission do
let(:account) { create(:account) }
let(:user) { create(:user, account:) }
let(:template) { create(:template, account:, author: user) }
let(:submission) { create(:submission, template:, created_by_user: user) }
describe '#template_signing_order' do
it 'returns the submitters_order from template preferences' do
template.update!(preferences: { 'submitters_order' => 'employee_then_manager' })
expect(submission.template_signing_order).to eq('employee_then_manager')
end
it 'returns nil when template has no submitters_order preference' do
template.update_column(:preferences, {})
expect(submission.reload.template_signing_order).to be_nil
end
it 'returns nil when submission has no template' do
submission.update!(template: nil)
expect(submission.template_signing_order).to be_nil
end
end
describe '#signing_order_enforced?' do
it 'returns true for employee_then_manager' do
template.update!(preferences: { 'submitters_order' => 'employee_then_manager' })
expect(submission.signing_order_enforced?).to be true
end
it 'returns true for manager_then_employee' do
template.update!(preferences: { 'submitters_order' => 'manager_then_employee' })
expect(submission.signing_order_enforced?).to be true
end
it 'returns false for simultaneous' do
template.update!(preferences: { 'submitters_order' => 'simultaneous' })
expect(submission.signing_order_enforced?).to be false
end
it 'returns false for single_sided' do
template.update!(preferences: { 'submitters_order' => 'single_sided' })
expect(submission.signing_order_enforced?).to be false
end
end
end