9ce92d5c3b
Fix #3961
65 lines
1.8 KiB
Ruby
65 lines
1.8 KiB
Ruby
require 'rails_helper'
|
||
|
||
describe 'shared/attachment/_update.html.haml', type: :view do
|
||
let(:champ) { build(:champ_piece_justificative, dossier: create(:dossier)) }
|
||
let(:attachment) { nil }
|
||
let(:virus_scan_result) { nil }
|
||
let(:user_can_destroy) { false }
|
||
|
||
subject do
|
||
form_for(champ.dossier) do |form|
|
||
render 'shared/attachment/update', {
|
||
attachment: attachment,
|
||
user_can_destroy: user_can_destroy,
|
||
form: form
|
||
}
|
||
end
|
||
end
|
||
|
||
it 'renders a form field for uploading a file' do
|
||
expect(subject).to have_selector('input[type=file]:not(.hidden)')
|
||
end
|
||
|
||
context 'when there is a attached file' do
|
||
let(:attachment) { champ.piece_justificative_file.attachment }
|
||
|
||
it 'renders a form field for uploading a file' do
|
||
expect(subject).to have_selector('input[type=file]:not(.hidden)')
|
||
end
|
||
|
||
it 'does not renders a link to the unsaved file' do
|
||
expect(subject).not_to have_content(attachment.filename.to_s)
|
||
end
|
||
|
||
it 'doesn’t render action buttons' do
|
||
expect(subject).not_to have_link('Remplacer')
|
||
expect(subject).not_to have_link('Supprimer')
|
||
end
|
||
|
||
context 'and the attachment has been saved' do
|
||
before { champ.save! }
|
||
|
||
it 'renders a link to the file' do
|
||
expect(subject).to have_content(attachment.filename.to_s)
|
||
end
|
||
|
||
it 'renders action buttons' do
|
||
expect(subject).to have_button('Remplacer')
|
||
end
|
||
|
||
it 'hides the form field by default' do
|
||
expect(subject).to have_selector('input[type=file].hidden')
|
||
end
|
||
|
||
it 'hides the Delete button by default' do
|
||
is_expected.not_to have_link('Supprimer')
|
||
end
|
||
|
||
context 'and the user can delete the attachment' do
|
||
let(:user_can_destroy) { true }
|
||
|
||
it { is_expected.to have_link('Supprimer') }
|
||
end
|
||
end
|
||
end
|
||
end
|