mirror of https://github.com/docusealco/docuseal
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.
48 lines
1.7 KiB
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
|