This commit is contained in:
Simon Lehericey 2017-03-05 22:15:19 +01:00
parent 36500407b4
commit 7b336922cc
7 changed files with 5 additions and 160 deletions

View file

@ -15,10 +15,6 @@ class NotificationMailer < ApplicationMailer
send_mail dossier, "Nouveau message pour votre dossier TPS N°#{dossier.id}"
end
def dossier_received dossier
send_mail dossier, dossier.procedure.mail_received.object_for_dossier(dossier)
end
def dossier_submitted dossier
send_mail dossier, "Votre dossier TPS N°#{dossier.id} a été déposé"
end

View file

@ -4,7 +4,6 @@ class Procedure < ActiveRecord::Base
has_many :types_de_champ_private, dependent: :destroy
has_many :dossiers
has_many :mail_templates
has_one :mail_received
has_one :initiated_mail
@ -31,12 +30,6 @@ class Procedure < ActiveRecord::Base
validates :libelle, presence: true, allow_blank: false, allow_nil: false
validates :description, presence: true, allow_blank: false, allow_nil: false
after_create :build_default_mails
def build_default_mails
MailReceived.create(procedure: self) unless mail_received
end
def initiated_mail_with_override
initiated_mail_without_override || InitiatedMail.default
end

View file

@ -1 +0,0 @@
<%= @dossier.procedure.mail_received.body_for_dossier(@dossier).html_safe %>

View file

@ -35,16 +35,4 @@ RSpec.describe NotificationMailer, type: :mailer do
it { expect(subject.body).to match("ce jour à #{dossier.updated_at}.") }
it { expect(subject.subject).to eq("Votre dossier TPS N°#{dossier.id} a été déposé") }
end
describe '.dossier_received' do
let(:user) { create(:user) }
let(:dossier) { create(:dossier, user: user) }
subject(:subject) { described_class.dossier_received(dossier) }
before { dossier.reload }
it { expect(subject.subject).to eq("[TPS] Accusé de réception pour votre dossier n°#{dossier.id}") }
it { expect(subject.body).to match("Votre administration vous confirme la bonne réception de votre dossier n°#{dossier.id}") }
end
end

View file

@ -1,25 +0,0 @@
load 'spec/spec_helper.rb'
load 'db/migrate/20170215102943_remove_duplicate_email_received.rb'
describe RemoveDuplicateEmailReceived do
context 'with one procedure and one associated mail_received' do
let!(:procedure) { create(:procedure) }
it 'keeps the procedure mails' do
RemoveDuplicateEmailReceived.new.change
expect(MailReceived.count).to eq(1)
end
context 'and another mail_received' do
before :each do
MailReceived.create!(procedure: procedure)
end
it 'destroys the unecessary maiL_received' do
RemoveDuplicateEmailReceived.new.change
expect(MailReceived.count).to eq(1)
expect(procedure.mail_received).not_to be_nil
end
end
end
end

View file

@ -6,85 +6,15 @@ describe MailTemplate do
it { is_expected.to belong_to(:procedure) }
describe '.tags' do
subject { MailTemplate::TAGS }
it { expect(subject.size).to eq 3 }
describe 'numero_dossier' do
subject { super()[:numero_dossier] }
describe 'attr and description value' do
it { expect(subject[:description]).to eq "Permet d'afficher le numéro de dossier de l'utilisateur." }
end
end
describe 'libelle_procedure' do
subject { super()[:libelle_procedure] }
describe 'attr and description value' do
it { expect(subject[:description]).to eq "Permet d'afficher le libellé de la procédure." }
end
end
describe 'lien_dossier' do
subject { super()[:lien_dossier] }
describe 'attr and description value' do
it { expect(subject[:description]).to eq "Permet d'afficher un lien vers le dossier de l'utilisateur." }
end
end
end
describe '.replace_tags' do
let(:dossier) { create :dossier }
let(:procedure) { dossier.procedure }
let(:mail_received) { procedure.mail_received }
let(:initiated_mail) { InitiatedMail.default }
describe 'for tag --numero_dossier--' do
before do
procedure.mail_received.update_column(:object, '[TPS] Dossier n°--numero_dossier--')
end
it 'works' do
initiated_mail.object = '[TPS] --numero_dossier-- --libelle_procedure-- --lien_dossier--'
expected = "[TPS] 1 Demande de subvention <a target=\"_blank\" href=\"http://localhost:3000/users/dossiers/1/recapitulatif\">http://localhost:3000/users/dossiers/1/recapitulatif</a>"
subject { procedure.mail_received.object_for_dossier dossier }
it { expect(subject).to eq "[TPS] Dossier n°#{dossier.id}" }
end
describe 'for tag --libelle_procedure--' do
before do
procedure.mail_received.update_column(:object, '[TPS] Dossier pour la procédure --libelle_procedure--')
end
subject { procedure.mail_received.object_for_dossier dossier }
it { expect(subject).to eq "[TPS] Dossier pour la procédure #{procedure.libelle}" }
end
describe 'for tag --lien_dossier--' do
include Rails.application.routes.url_helpers
include ActionView::Helpers::UrlHelper
before do
procedure.mail_received.update_column(:body, 'Consultez votre dossier ici --lien_dossier--')
end
subject { procedure.mail_received.body_for_dossier dossier }
it { is_expected.to eq "Consultez votre dossier ici #{link_to users_dossier_recapitulatif_url(dossier), users_dossier_recapitulatif_url(dossier), target: '_blank'}" }
end
describe 'multiple tags' do
before do
procedure.mail_received.update_column(:object, '[TPS] Dossier n°--numero_dossier-- pour la procédure --libelle_procedure-- et encore le numéro : --numero_dossier--')
end
subject { procedure.mail_received.object_for_dossier dossier }
it { expect(subject).to eq "[TPS] Dossier n°#{dossier.id} pour la procédure #{procedure.libelle} et encore le numéro : #{dossier.id}" }
expect(initiated_mail.object_for_dossier(dossier)).to eq(expected)
end
end
end

View file

@ -21,38 +21,6 @@ describe Procedure do
it { is_expected.to have_db_column(:logo_secure_token) }
it { is_expected.to have_db_column(:cerfa_flag) }
it { is_expected.to have_db_column(:published) }
describe 'mail_received' do
let(:procedure) { create :procedure }
before do
create :mail_received, procedure: procedure
end
it { expect(procedure.mail_received).not_to be_nil }
end
end
describe '#build_default_mails' do
subject { build :procedure, mail_templates: [] }
it 'call the fonction build_default_mails' do
expect(subject).to receive(:build_default_mails)
subject.save
end
describe 'accessible values' do
before do
subject.save
subject.reload
end
it { expect(subject.mail_templates.size).to eq 1 }
it { expect(subject.mail_received).not_to be_nil }
end
end
describe 'initiated_mail' do
@ -196,10 +164,6 @@ describe Procedure do
let!(:piece_justificative_0) { create(:type_de_piece_justificative, procedure: procedure, order_place: 0) }
let!(:piece_justificative_1) { create(:type_de_piece_justificative, procedure: procedure, order_place: 1) }
before do
procedure.mail_received.object = "Je vais être cloné"
end
subject { procedure.clone }
it 'should duplicate specific objects with different id' do