Merge branch 'dev'

This commit is contained in:
gregoirenovel 2018-01-31 10:46:52 +01:00
commit ef6db46805
18 changed files with 101 additions and 145 deletions

View file

@ -30,27 +30,27 @@ GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
specs: specs:
CFPropertyList (2.3.6) CFPropertyList (2.3.6)
actioncable (5.0.6) actioncable (5.1.4)
actionpack (= 5.0.6) actionpack (= 5.1.4)
nio4r (>= 1.2, < 3.0) nio4r (~> 2.0)
websocket-driver (~> 0.6.1) websocket-driver (~> 0.6.1)
actionmailer (5.0.6) actionmailer (5.1.4)
actionpack (= 5.0.6) actionpack (= 5.1.4)
actionview (= 5.0.6) actionview (= 5.1.4)
activejob (= 5.0.6) activejob (= 5.1.4)
mail (~> 2.5, >= 2.5.4) mail (~> 2.5, >= 2.5.4)
rails-dom-testing (~> 2.0) rails-dom-testing (~> 2.0)
actionpack (5.0.6) actionpack (5.1.4)
actionview (= 5.0.6) actionview (= 5.1.4)
activesupport (= 5.0.6) activesupport (= 5.1.4)
rack (~> 2.0) rack (~> 2.0)
rack-test (~> 0.6.3) rack-test (>= 0.6.3)
rails-dom-testing (~> 2.0) rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.0.2) rails-html-sanitizer (~> 1.0, >= 1.0.2)
actionview (5.0.6) actionview (5.1.4)
activesupport (= 5.0.6) activesupport (= 5.1.4)
builder (~> 3.1) builder (~> 3.1)
erubis (~> 2.7.0) erubi (~> 1.4)
rails-dom-testing (~> 2.0) rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.0.3) rails-html-sanitizer (~> 1.0, >= 1.0.3)
active_model_serializers (0.10.7) active_model_serializers (0.10.7)
@ -58,44 +58,43 @@ GEM
activemodel (>= 4.1, < 6) activemodel (>= 4.1, < 6)
case_transform (>= 0.2) case_transform (>= 0.2)
jsonapi-renderer (>= 0.1.1.beta1, < 0.3) jsonapi-renderer (>= 0.1.1.beta1, < 0.3)
activejob (5.0.6) activejob (5.1.4)
activesupport (= 5.0.6) activesupport (= 5.1.4)
globalid (>= 0.3.6) globalid (>= 0.3.6)
activemodel (5.0.6) activemodel (5.1.4)
activesupport (= 5.0.6) activesupport (= 5.1.4)
activemodel-serializers-xml (1.0.2) activemodel-serializers-xml (1.0.2)
activemodel (> 5.x) activemodel (> 5.x)
activesupport (> 5.x) activesupport (> 5.x)
builder (~> 3.1) builder (~> 3.1)
activerecord (5.0.6) activerecord (5.1.4)
activemodel (= 5.0.6) activemodel (= 5.1.4)
activesupport (= 5.0.6) activesupport (= 5.1.4)
arel (~> 7.0) arel (~> 8.0)
activesupport (5.0.6) activesupport (5.1.4)
concurrent-ruby (~> 1.0, >= 1.0.2) concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (~> 0.7) i18n (~> 0.7)
minitest (~> 5.1) minitest (~> 5.1)
tzinfo (~> 1.1) tzinfo (~> 1.1)
addressable (2.5.2) addressable (2.5.2)
public_suffix (>= 2.0.2, < 4.0) public_suffix (>= 2.0.2, < 4.0)
administrate (0.4.0) administrate (0.8.1)
autoprefixer-rails (~> 6.0) actionpack (>= 4.2, < 5.2)
bourbon (~> 4.2) actionview (>= 4.2, < 5.2)
activerecord (>= 4.2, < 5.2)
autoprefixer-rails (>= 6.0)
datetime_picker_rails (~> 0.0.7) datetime_picker_rails (~> 0.0.7)
jquery-rails (~> 4.0) jquery-rails (>= 4.0)
kaminari (~> 0.16) kaminari (>= 1.0)
momentjs-rails (~> 2.8) momentjs-rails (~> 2.8)
neat (~> 1.1)
normalize-rails (~> 3.0)
rails (>= 4.2, < 5.1)
sass-rails (~> 5.0) sass-rails (~> 5.0)
selectize-rails (~> 0.6) selectize-rails (~> 0.6)
apipie-rails (0.5.6) apipie-rails (0.5.6)
rails (>= 4.1) rails (>= 4.1)
arel (7.1.4) arel (8.0.0)
ast (2.3.0) ast (2.3.0)
attr_required (1.0.1) attr_required (1.0.1)
autoprefixer-rails (6.7.7.2) autoprefixer-rails (7.2.5)
execjs execjs
axlsx (2.0.1) axlsx (2.0.1)
htmlentities (~> 4.3.1) htmlentities (~> 4.3.1)
@ -109,9 +108,6 @@ GEM
sass (>= 3.3.4) sass (>= 3.3.4)
bootstrap-wysihtml5-rails (0.3.3.8) bootstrap-wysihtml5-rails (0.3.3.8)
railties (>= 3.0) railties (>= 3.0)
bourbon (4.3.4)
sass (~> 3.4)
thor (~> 0.19)
brakeman (4.1.1) brakeman (4.1.1)
browser (2.5.2) browser (2.5.2)
builder (3.2.3) builder (3.2.3)
@ -138,7 +134,7 @@ GEM
chartkick (2.2.5) chartkick (2.2.5)
childprocess (0.8.0) childprocess (0.8.0)
ffi (~> 1.0, >= 1.0.11) ffi (~> 1.0, >= 1.0.11)
chunky_png (1.3.8) chunky_png (1.3.10)
clamav-client (3.1.0) clamav-client (3.1.0)
coderay (1.1.2) coderay (1.1.2)
coffee-rails (4.2.2) coffee-rails (4.2.2)
@ -193,6 +189,7 @@ GEM
em-websocket (0.5.1) em-websocket (0.5.1)
eventmachine (>= 0.12.9) eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0) http_parser.rb (~> 0.6.0)
erubi (1.7.0)
erubis (2.7.0) erubis (2.7.0)
eventmachine (1.2.1) eventmachine (1.2.1)
excon (0.60.0) excon (0.60.0)
@ -402,7 +399,7 @@ GEM
domain_name (~> 0.5) domain_name (~> 0.5)
http_parser.rb (0.6.0) http_parser.rb (0.6.0)
httpclient (2.8.3) httpclient (2.8.3)
i18n (0.9.1) i18n (0.9.3)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
inflecto (0.0.2) inflecto (0.0.2)
ipaddress (0.8.3) ipaddress (0.8.3)
@ -418,9 +415,18 @@ GEM
url_safe_base64 url_safe_base64
jsonapi-renderer (0.2.0) jsonapi-renderer (0.2.0)
jwt (1.5.6) jwt (1.5.6)
kaminari (0.17.0) kaminari (1.1.1)
actionpack (>= 3.0.0) activesupport (>= 4.1.0)
activesupport (>= 3.0.0) kaminari-actionview (= 1.1.1)
kaminari-activerecord (= 1.1.1)
kaminari-core (= 1.1.1)
kaminari-actionview (1.1.1)
actionview
kaminari-core (= 1.1.1)
kaminari-activerecord (1.1.1)
activerecord
kaminari-core (= 1.1.1)
kaminari-core (1.1.1)
kgio (2.11.1) kgio (2.11.1)
launchy (2.4.3) launchy (2.4.3)
addressable (~> 2.3) addressable (~> 2.3)
@ -463,15 +469,11 @@ GEM
multi_xml (0.6.0) multi_xml (0.6.0)
multipart-post (2.0.0) multipart-post (2.0.0)
mustermann (1.0.1) mustermann (1.0.1)
neat (1.9.0)
sass (>= 3.3)
thor (~> 0.19)
nenv (0.3.0) nenv (0.3.0)
netrc (0.11.0) netrc (0.11.0)
nio4r (2.2.0) nio4r (2.2.0)
nokogiri (1.8.1) nokogiri (1.8.1)
mini_portile2 (~> 2.3.0) mini_portile2 (~> 2.3.0)
normalize-rails (3.0.3)
notiffany (0.1.1) notiffany (0.1.1)
nenv (~> 0.1) nenv (~> 0.1)
shellany (~> 0.0) shellany (~> 0.0)
@ -537,19 +539,19 @@ GEM
rack (>= 1.1) rack (>= 1.1)
rack-protection (2.0.0) rack-protection (2.0.0)
rack rack
rack-test (0.6.3) rack-test (0.8.2)
rack (>= 1.0) rack (>= 1.0, < 3)
rails (5.0.6) rails (5.1.4)
actioncable (= 5.0.6) actioncable (= 5.1.4)
actionmailer (= 5.0.6) actionmailer (= 5.1.4)
actionpack (= 5.0.6) actionpack (= 5.1.4)
actionview (= 5.0.6) actionview (= 5.1.4)
activejob (= 5.0.6) activejob (= 5.1.4)
activemodel (= 5.0.6) activemodel (= 5.1.4)
activerecord (= 5.0.6) activerecord (= 5.1.4)
activesupport (= 5.0.6) activesupport (= 5.1.4)
bundler (>= 1.3.0) bundler (>= 1.3.0)
railties (= 5.0.6) railties (= 5.1.4)
sprockets-rails (>= 2.0.0) sprockets-rails (>= 2.0.0)
rails-controller-testing (1.0.2) rails-controller-testing (1.0.2)
actionpack (~> 5.x, >= 5.0.1) actionpack (~> 5.x, >= 5.0.1)
@ -560,9 +562,9 @@ GEM
nokogiri (>= 1.6) nokogiri (>= 1.6)
rails-html-sanitizer (1.0.3) rails-html-sanitizer (1.0.3)
loofah (~> 2.0) loofah (~> 2.0)
railties (5.0.6) railties (5.1.4)
actionpack (= 5.0.6) actionpack (= 5.1.4)
activesupport (= 5.0.6) activesupport (= 5.1.4)
method_source method_source
rake (>= 0.8.7) rake (>= 0.8.7)
thor (>= 0.18.1, < 2.0) thor (>= 0.18.1, < 2.0)
@ -711,7 +713,7 @@ GEM
turbolinks-source (5.1.0) turbolinks-source (5.1.0)
tzinfo (1.2.4) tzinfo (1.2.4)
thread_safe (~> 0.1) thread_safe (~> 0.1)
uglifier (4.1.3) uglifier (4.1.4)
execjs (>= 0.3.0, < 3) execjs (>= 0.3.0, < 3)
unf (0.1.4) unf (0.1.4)
unf_ext unf_ext

View file

@ -2,9 +2,9 @@ class PingController < ApplicationController
def index def index
Rails.logger.silence do Rails.logger.silence do
if (ActiveRecord::Base.connected?) if (ActiveRecord::Base.connected?)
render nothing: true, status: 200, content_type: "application/json" head :ok
else else
render nothing: true, status: 500, content_type: "application/json" head :internal_server_error
end end
end end
end end

View file

@ -7,8 +7,8 @@ class Gestionnaire < ActiveRecord::Base
has_many :assign_to, dependent: :destroy has_many :assign_to, dependent: :destroy
has_many :procedures, -> { publiees_ou_archivees }, through: :assign_to has_many :procedures, -> { publiees_ou_archivees }, through: :assign_to
has_many :dossiers, -> { state_not_brouillon }, through: :procedures has_many :dossiers, -> { state_not_brouillon }, through: :procedures
has_many :followed_dossiers, through: :follows, source: :dossier
has_many :follows has_many :follows
has_many :followed_dossiers, through: :follows, source: :dossier
has_many :avis has_many :avis
has_many :dossiers_from_avis, through: :avis, source: :dossier has_many :dossiers_from_avis, through: :avis, source: :dossier
@ -51,17 +51,6 @@ class Gestionnaire < ActiveRecord::Base
Notification.where(already_read: false, dossier_id: follows.pluck(:dossier_id)).order("updated_at DESC") Notification.where(already_read: false, dossier_id: follows.pluck(:dossier_id)).order("updated_at DESC")
end end
def notifications_for procedure
procedure_ids = followed_dossiers.pluck(:procedure_id)
if procedure_ids.include?(procedure.id)
return followed_dossiers.where(procedure_id: procedure.id).sum do |dossier|
dossier.notifications.where(already_read: false).count
end
end
0
end
def dossiers_with_notifications_count_for_procedure(procedure) def dossiers_with_notifications_count_for_procedure(procedure)
followed_dossiers_id = followed_dossiers.where(procedure: procedure).pluck(:id) followed_dossiers_id = followed_dossiers.where(procedure: procedure).pluck(:id)
Notification.unread.where(dossier_id: followed_dossiers_id).select(:dossier_id).distinct(:dossier_id).count Notification.unread.where(dossier_id: followed_dossiers_id).select(:dossier_id).distinct(:dossier_id).count

View file

@ -33,7 +33,9 @@ class TypesDeChampService
private private
def self.order_champs(params, attributes) def self.order_champs(params, attributes)
tdcas = params[:procedure][attributes].to_a # It's OK to use an unsafe hash here because the params will then go through
# require / permit methods in the method before this one
tdcas = params[:procedure][attributes].to_unsafe_hash.to_a
.map { |_hash_index, tdca| tdca } .map { |_hash_index, tdca| tdca }
tdcas tdcas

View file

@ -1,3 +1,3 @@
.row.white-back .row.white-back
#previsualisation #previsualisation
= render 'users/description/show' = render partial: 'users/description/show', locals: { previsualisation: true }

View file

@ -30,9 +30,7 @@
.col-lg-8 .col-lg-8
= render partial: 'users/description/pieces_justificatives', locals: { dossier: @dossier } = render partial: 'users/description/pieces_justificatives', locals: { dossier: @dossier }
-# WTF ? - if !previsualisation
- route = Rails.application.routes.recognize_path(request.referrer)
- if !route[:controller].match('admin')
%div{ style: 'text-align: right;' } %div{ style: 'text-align: right;' }
%h6 Tous les champs portant un * sont obligatoires. %h6 Tous les champs portant un * sont obligatoires.

View file

@ -1 +1 @@
= render partial: 'show' = render partial: 'show', locals: { previsualisation: false }

View file

@ -1,9 +1,12 @@
include ActionDispatch::TestProcess
describe Admin::AttestationTemplatesController, type: :controller do describe Admin::AttestationTemplatesController, type: :controller do
let!(:attestation_template) { create(:attestation_template) } let!(:attestation_template) { create(:attestation_template) }
let(:admin) { create(:administrateur) } let(:admin) { create(:administrateur) }
let!(:procedure) { create :procedure, administrateur: admin, attestation_template: attestation_template } let!(:procedure) { create :procedure, administrateur: admin, attestation_template: attestation_template }
let(:logo) { fixture_file_upload('spec/fixtures/white.png', 'image/png') } let(:logo) { fixture_file_upload('spec/fixtures/white.png', 'image/png') }
let(:logo2) { fixture_file_upload('spec/fixtures/white.png', 'image/png') }
let(:signature) { fixture_file_upload('spec/fixtures/black.png', 'image/png') } let(:signature) { fixture_file_upload('spec/fixtures/black.png', 'image/png') }
let(:signature2) { fixture_file_upload('spec/fixtures/black.png', 'image/png') }
let(:interlaced_logo) { fixture_file_upload('spec/fixtures/interlaced-black.png', 'image/png') } let(:interlaced_logo) { fixture_file_upload('spec/fixtures/interlaced-black.png', 'image/png') }
let(:uninterlaced_logo) { fixture_file_upload('spec/fixtures/uninterlaced-black.png', 'image/png') } let(:uninterlaced_logo) { fixture_file_upload('spec/fixtures/uninterlaced-black.png', 'image/png') }
@ -84,8 +87,8 @@ describe Admin::AttestationTemplatesController, type: :controller do
it { expect(procedure.attestation_template).to have_attributes(attestation_params) } it { expect(procedure.attestation_template).to have_attributes(attestation_params) }
it { expect(procedure.attestation_template.activated).to be true } it { expect(procedure.attestation_template.activated).to be true }
it { expect(procedure.attestation_template.logo.read).to eq(logo.read) } it { expect(procedure.attestation_template.logo.read).to eq(logo2.read) }
it { expect(procedure.attestation_template.signature.read).to eq(signature.read) } it { expect(procedure.attestation_template.signature.read).to eq(signature2.read) }
it { expect(response).to redirect_to edit_admin_procedure_attestation_template_path(procedure) } it { expect(response).to redirect_to edit_admin_procedure_attestation_template_path(procedure) }
it { expect(flash.notice).to eq("L'attestation a bien été sauvegardée") } it { expect(flash.notice).to eq("L'attestation a bien été sauvegardée") }
@ -127,8 +130,8 @@ describe Admin::AttestationTemplatesController, type: :controller do
end end
it { expect(procedure.attestation_template).to have_attributes(attestation_params) } it { expect(procedure.attestation_template).to have_attributes(attestation_params) }
it { expect(procedure.attestation_template.logo.read).to eq(logo.read) } it { expect(procedure.attestation_template.logo.read).to eq(logo2.read) }
it { expect(procedure.attestation_template.signature.read).to eq(signature.read) } it { expect(procedure.attestation_template.signature.read).to eq(signature2.read) }
it { expect(response).to redirect_to edit_admin_procedure_attestation_template_path(procedure) } it { expect(response).to redirect_to edit_admin_procedure_attestation_template_path(procedure) }
it { expect(flash.notice).to eq("L'attestation a bien été modifiée") } it { expect(flash.notice).to eq("L'attestation a bien été modifiée") }

View file

@ -16,11 +16,12 @@ describe Admin::GestionnairesController, type: :controller do
describe 'GET #index with sorting and pagination' do describe 'GET #index with sorting and pagination' do
subject { subject {
get :index, get :index, params: {
'gestionnaires_smart_listing[page]': 1, 'gestionnaires_smart_listing[page]': 1,
'gestionnaires_smart_listing[per_page]': 10, 'gestionnaires_smart_listing[per_page]': 10,
'gestionnaires_smart_listing[sort][email]': 'asc' 'gestionnaires_smart_listing[sort][email]': 'asc'
} }
}
it { expect(subject.status).to eq(200) } it { expect(subject.status).to eq(200) }
end end

View file

@ -44,11 +44,12 @@ describe Admin::ProceduresController, type: :controller do
describe 'GET #index with sorting and pagination' do describe 'GET #index with sorting and pagination' do
subject { subject {
get :index, get :index, params: {
'procedures_smart_listing[page]': 1, 'procedures_smart_listing[page]': 1,
'procedures_smart_listing[per_page]': 10, 'procedures_smart_listing[per_page]': 10,
'procedures_smart_listing[sort][id]': 'asc' 'procedures_smart_listing[sort][id]': 'asc'
} }
}
it { expect(subject.status).to eq(200) } it { expect(subject.status).to eq(200) }
end end
@ -61,11 +62,12 @@ describe Admin::ProceduresController, type: :controller do
describe 'GET #archived with sorting and pagination' do describe 'GET #archived with sorting and pagination' do
subject { subject {
get :archived, get :archived, params: {
'procedures_smart_listing[page]': 1, 'procedures_smart_listing[page]': 1,
'procedures_smart_listing[per_page]': 10, 'procedures_smart_listing[per_page]': 10,
'procedures_smart_listing[sort][libelle]': 'asc' 'procedures_smart_listing[sort][libelle]': 'asc'
} }
}
it { expect(subject.status).to eq(200) } it { expect(subject.status).to eq(200) }
end end
@ -78,11 +80,12 @@ describe Admin::ProceduresController, type: :controller do
describe 'GET #draft with sorting and pagination' do describe 'GET #draft with sorting and pagination' do
subject { subject {
get :draft, get :draft, params: {
'procedures_smart_listing[page]': 1, 'procedures_smart_listing[page]': 1,
'procedures_smart_listing[per_page]': 10, 'procedures_smart_listing[per_page]': 10,
'procedures_smart_listing[sort][published_at]': 'asc' 'procedures_smart_listing[sort][published_at]': 'asc'
} }
}
it { expect(subject.status).to eq(200) } it { expect(subject.status).to eq(200) }
end end

View file

@ -9,7 +9,7 @@ describe Manager::AdministrateursController, type: :controller do
sign_in administration sign_in administration
end end
subject { post :create, administrateur: { email: email } } subject { post :create, params: { administrateur: { email: email } } }
context 'when email and password are correct' do context 'when email and password are correct' do
it 'add new administrateur in database' do it 'add new administrateur in database' do

View file

@ -5,7 +5,7 @@ describe Manager::ProceduresController, type: :controller do
before do before do
sign_in administration sign_in administration
post :whitelist, id: procedure.id post :whitelist, params: { id: procedure.id }
procedure.reload procedure.reload
end end

View file

@ -22,14 +22,14 @@ describe NewGestionnaire::AvisController, type: :controller do
it { expect(assigns(:statut)).to eq('a-donner') } it { expect(assigns(:statut)).to eq('a-donner') }
context 'with a statut equal to donnes' do context 'with a statut equal to donnes' do
before { get :index, statut: 'donnes' } before { get :index, params: { statut: 'donnes' } }
it { expect(assigns(:statut)).to eq('donnes') } it { expect(assigns(:statut)).to eq('donnes') }
end end
end end
describe '#show' do describe '#show' do
before { get :show, { id: avis_without_answer.id } } before { get :show, params: { id: avis_without_answer.id } }
it { expect(response).to have_http_status(:success) } it { expect(response).to have_http_status(:success) }
it { expect(assigns(:avis)).to eq(avis_without_answer) } it { expect(assigns(:avis)).to eq(avis_without_answer) }
@ -37,7 +37,7 @@ describe NewGestionnaire::AvisController, type: :controller do
end end
describe '#instruction' do describe '#instruction' do
before { get :instruction, { id: avis_without_answer.id } } before { get :instruction, params: { id: avis_without_answer.id } }
it { expect(response).to have_http_status(:success) } it { expect(response).to have_http_status(:success) }
it { expect(assigns(:avis)).to eq(avis_without_answer) } it { expect(assigns(:avis)).to eq(avis_without_answer) }
@ -45,7 +45,7 @@ describe NewGestionnaire::AvisController, type: :controller do
end end
describe '#messagerie' do describe '#messagerie' do
before { get :messagerie, { id: avis_without_answer.id } } before { get :messagerie, params: { id: avis_without_answer.id } }
it { expect(response).to have_http_status(:success) } it { expect(response).to have_http_status(:success) }
it { expect(assigns(:avis)).to eq(avis_without_answer) } it { expect(assigns(:avis)).to eq(avis_without_answer) }
@ -54,7 +54,7 @@ describe NewGestionnaire::AvisController, type: :controller do
describe '#update' do describe '#update' do
before do before do
patch :update, { id: avis_without_answer.id, avis: { answer: 'answer' } } patch :update, params: { id: avis_without_answer.id, avis: { answer: 'answer' } }
avis_without_answer.reload avis_without_answer.reload
end end
@ -67,7 +67,7 @@ describe NewGestionnaire::AvisController, type: :controller do
let(:file) { nil } let(:file) { nil }
let(:scan_result) { true } let(:scan_result) { true }
subject { post :create_commentaire, { id: avis_without_answer.id, commentaire: { body: 'commentaire body', file: file } } } subject { post :create_commentaire, params: { id: avis_without_answer.id, commentaire: { body: 'commentaire body', file: file } } }
before do before do
allow(ClamavService).to receive(:safe_file?).and_return(scan_result) allow(ClamavService).to receive(:safe_file?).and_return(scan_result)
@ -105,7 +105,7 @@ describe NewGestionnaire::AvisController, type: :controller do
let(:created_avis) { Avis.last } let(:created_avis) { Avis.last }
before do before do
post :create_avis, { id: previous_avis.id, avis: { email: email, introduction: intro, confidentiel: asked_confidentiel } } post :create_avis, params: { id: previous_avis.id, avis: { email: email, introduction: intro, confidentiel: asked_confidentiel } }
end end
context 'when the previous avis is public' do context 'when the previous avis is public' do

View file

@ -21,7 +21,7 @@ describe NewGestionnaire::DossiersController, type: :controller do
expect(controller).to receive(:send_data) expect(controller).to receive(:send_data)
.with('pdf content', filename: 'attestation.pdf', type: 'application/pdf') do .with('pdf content', filename: 'attestation.pdf', type: 'application/pdf') do
controller.render nothing: true controller.head :ok
end end
get :attestation, params: { procedure_id: procedure.id, dossier_id: dossier.id } get :attestation, params: { procedure_id: procedure.id, dossier_id: dossier.id }

View file

@ -16,7 +16,7 @@ describe NewGestionnaire::ProceduresController, type: :controller do
let(:gestionnaire) { create(:gestionnaire) } let(:gestionnaire) { create(:gestionnaire) }
before do before do
@controller.params[:procedure_id] = asked_procedure.id @controller.params = @controller.params.merge(procedure_id: asked_procedure.id)
expect(@controller).to receive(:current_gestionnaire).and_return(gestionnaire) expect(@controller).to receive(:current_gestionnaire).and_return(gestionnaire)
allow(@controller).to receive(:redirect_to) allow(@controller).to receive(:redirect_to)

View file

@ -18,7 +18,7 @@ describe NewUser::DossiersController, type: :controller do
let(:user) { create(:user) } let(:user) { create(:user) }
before do before do
@controller.params[:dossier_id] = asked_dossier.id @controller.params = @controller.params.merge(dossier_id: asked_dossier.id)
expect(@controller).to receive(:current_user).and_return(user) expect(@controller).to receive(:current_user).and_return(user)
allow(@controller).to receive(:redirect_to) allow(@controller).to receive(:redirect_to)
@ -56,7 +56,7 @@ describe NewUser::DossiersController, type: :controller do
expect(controller).to receive(:send_data) expect(controller).to receive(:send_data)
.with('pdf content', filename: 'attestation.pdf', type: 'application/pdf') do .with('pdf content', filename: 'attestation.pdf', type: 'application/pdf') do
controller.render nothing: true controller.head :ok
end end
get :attestation, params: { dossier_id: dossier.id } get :attestation, params: { dossier_id: dossier.id }

View file

@ -1,7 +1,7 @@
require 'rails_helper' require 'rails_helper'
include ActiveJob::TestHelper include ActiveJob::TestHelper
RSpec.describe ApplicationJob, type: :job do RSpec.describe ApplicationJob, type: :job, skip: true do
describe 'perform' do describe 'perform' do
it do it do
expect(Rails.logger).to receive(:info).with(/.+started at.+/) expect(Rails.logger).to receive(:info).with(/.+started at.+/)

View file

@ -88,48 +88,6 @@ describe Gestionnaire, type: :model do
end end
end end
describe '#notifications_for' do
subject { gestionnaire.notifications_for procedure }
context 'when gestionnaire follow any dossier' do
it { is_expected.to eq 0 }
it { expect(gestionnaire.follows.count).to eq 0 }
it do
expect_any_instance_of(Dossier::ActiveRecord_AssociationRelation).not_to receive(:sum)
subject
end
end
context 'when gestionnaire follow any dossier into the procedure past in params' do
before do
create :follow, gestionnaire: gestionnaire, dossier: create(:dossier, procedure: procedure_2)
end
it { is_expected.to eq 0 }
it { expect(gestionnaire.follows.count).to eq 1 }
it do
expect_any_instance_of(Dossier::ActiveRecord_AssociationRelation).not_to receive(:sum)
subject
end
end
context 'when gestionnaire follow a dossier with a notification into the procedure past in params' do
let(:dossier) { create(:dossier, procedure: procedure, state: 'en_construction') }
before do
create :follow, gestionnaire: gestionnaire, dossier: dossier
create :notification, dossier: dossier
end
it { is_expected.to eq 1 }
it { expect(gestionnaire.follows.count).to eq 1 }
it do
expect_any_instance_of(Dossier::ActiveRecord_AssociationRelation).to receive(:sum)
subject
end
end
end
describe '#procedure_filter' do describe '#procedure_filter' do
subject { gestionnaire.procedure_filter } subject { gestionnaire.procedure_filter }