Merge branch 'develop' into staging

This commit is contained in:
Xavier J 2016-08-29 11:02:39 +02:00
commit 9f3c06633c
22 changed files with 520 additions and 47 deletions

View file

@ -42,6 +42,7 @@ function application_init(){
}
function tooltip_init() {
$('.action_button[data-toggle="tooltip"]').tooltip({delay: { "show": 100, "hide": 100 }});
$('[data-toggle="tooltip"]').tooltip({delay: { "show": 800, "hide": 100 }});
}

View file

@ -13,6 +13,14 @@ class Backoffice::DossiersController < ApplicationController
@champs = @facade.champs_private unless @facade.nil?
end
def download_dossiers_tps
dossiers = current_gestionnaire.dossiers.where.not(state: :draft)
response.headers['Content-Type'] = 'text/csv'
render csv: dossiers, status: 200
end
def search
@search_terms = params[:q]
@dossiers_search, @dossier = Dossier.search(current_gestionnaire, @search_terms)
@ -40,12 +48,45 @@ class Backoffice::DossiersController < ApplicationController
render 'show'
end
def receive
create_dossier_facade params[:dossier_id]
@facade.dossier.next_step! 'gestionnaire', 'receive'
flash.notice = 'Dossier considéré comme reçu.'
render 'show'
end
def refuse
create_dossier_facade params[:dossier_id]
@facade.dossier.next_step! 'gestionnaire', 'refuse'
flash.notice = 'Dossier considéré comme refusé.'
NotificationMailer.dossier_refused(@facade.dossier).deliver_now!
render 'show'
end
def without_continuation
create_dossier_facade params[:dossier_id]
@facade.dossier.next_step! 'gestionnaire', 'without_continuation'
flash.notice = 'Dossier considéré comme sans suite.'
NotificationMailer.dossier_without_continuation(@facade.dossier).deliver_now!
render 'show'
end
def close
create_dossier_facade params[:dossier_id]
@facade.dossier.next_step! 'gestionnaire', 'close'
flash.notice = 'Dossier traité avec succès.'
NotificationMailer.dossier_closed(@facade.dossier).deliver_now!
render 'show'
end

View file

@ -0,0 +1,5 @@
class CguController < ApplicationController
def index
end
end

View file

@ -11,6 +11,18 @@ class NotificationMailer < ApplicationMailer
send_mail dossier, "Votre dossier TPS N°#{dossier.id} a été déposé"
end
def dossier_without_continuation dossier
send_mail dossier, "Votre dossier TPS N°#{dossier.id} a été classé sans suite"
end
def dossier_refused dossier
send_mail dossier, "Votre dossier TPS N°#{dossier.id} a été refusé"
end
def dossier_closed dossier
send_mail dossier, "Votre dossier TPS N°#{dossier.id} a été accepté"
end
private
def vars_mailer dossier

View file

@ -87,7 +87,7 @@ class Dossier < ActiveRecord::Base
end
def next_step! role, action
unless %w(initiate update comment valid submit close).include?(action)
unless %w(initiate update comment valid submit receive refuse without_continuation close).include?(action)
fail 'action is not valid'
end
@ -130,10 +130,22 @@ class Dossier < ActiveRecord::Base
elsif initiated?
validated!
end
when 'close'
when 'receive'
if submitted?
received!
end
when 'close'
if received?
closed!
end
when 'refuse'
if received?
refused!
end
when 'without_continuation'
if received?
without_continuation!
end
end
end
state

View file

@ -26,4 +26,8 @@ class TypeDeChamp < ActiveRecord::Base
validates :libelle, presence: true, allow_blank: false, allow_nil: false
validates :type_champ, presence: true, allow_blank: false, allow_nil: false
# validates :order_place, presence: true, allow_blank: false, allow_nil: false
def self.type_de_champs_list_fr
type_champs.map { |champ| [ I18n.t("activerecord.attributes.type_de_champ.type_champs.#{champ.last}"), champ.first ] }
end
end

View file

@ -6,7 +6,7 @@
.form-group.type
%h4 Type
= ff.select :type_champ, TypeDeChamp.type_champs, {}, {class: 'form-control type_champ'}
= ff.select :type_champ, TypeDeChamp.type_de_champs_list_fr, {}, {class: 'form-control type_champ'}
.form-group.description
%h4 Description

View file

@ -1,3 +1,4 @@
=link_to 'Tous mes dossiers en CSV', backoffice_download_dossiers_tps_path, {class: 'btn btn-success btn-sm', style: 'float: right; margin-right: 4%; margin-top: 7px'}
%h1 Gestion des dossiers
%br

View file

@ -0,0 +1,167 @@
%h2
Condition dutilisation du service « TPS » pour téléprocédure simplifiée
%br
%h3
Editeur
%p Ce service est proposé par le Secrétariat général pour la modernisation de laction publique, un service interministériel du Premier Ministre, mis à disposition du ministère de la Réforme de lEtat, de la Décentralisation et de la Fonction publique.
%p Il est opéré par la Direction interministérielle du numérique et du système d'information et de communication de l'Etat (DINSIC).
%p
%p
%strong Secrétariat Général pour la Modernisation de lAction publique
%br/
64-70 allée de Bercy
%br/
75572 Paris Cedex 12
%p
%strong Directeur de la publication
%p Laure de LA BRETECHE
%p
%strong Responsable éditorial
%p Henri VERDIER
%p
%strong Responsable éditorial délégué
%p Philippe VRIGNAUD
%br
%h3
Ingénierie et hébergement informatique
%p L'ingénierie du site est assurée par :
%p
%strong OVH
%br/
SAS au capital de 10 000 000 €
%br/
RCS Roubaix Tourcoing 424 761 419 00045
%br/
Code APE 6202A
%br/
N° TVA : FR 22 424 761 419
%br/
Siège social : 2 rue Kellermann - 59100 Roubaix - France.
%br
%h3
Object du site internet
%a{:href => "https://tps.apientreprise.fr/"}
%strong tps.apientreprise.fr
%p
Le site internet tps.apientreprise.fr a pour objet de faciliter la création de démarches administratives en ligne par les acteurs publics, et linstruction par plusieurs services des demandes formulées par les usagers auprès dun ou organismes publics.
%br
%h3
Acteurs de
%a{:href => "https://tps.apientreprise.fr/"}
TPS
%p Les acteurs de TPS sont les suivants :
%ul
%li Le SGMAP qui héberge le service TPS, le maintien en condition opérationnelle et gère les droits daccès
%li Ladministrateur au sein dune administration donnée qui crée la démarche en ligne
%li Le ou les accompagnateurs au sein dune administration donnée, qui reçoivent les démarches des usagers, les accompagnent le cas échéant dans le bouclage de leurs dossier, instruisent la demande et décident des suites à donner aux demandes
%li Les Usagers qui formulent les demandes en ligne via le formulaire qui leur est mis à disposition
%br
%h3
Déclaration CNIL
%p Le SGMAP a procédé à la déclaration CNIL de TPS. Néanmoins les administrations devront procéder à une déclaration complémentaire auprès de la CNIL si les données du formulaire quelles ont produit comportent des données de la nature suivante :
%ul
%li N° de sécurité sociale,
%li Infractions, condamnations, mesures de sécurité,
%li
%a{:href => "https://www.declaration.cnil.fr/declarations/declaration/donneesSensibles_DN.display.action"} Opinions philosophiques, politiques, religieuses, syndicales, vie sexuelle, données de santé, origine raciale.
%br
%h3
Données collectées et responsabilité des organismes publics à linitiative de démarches en ligne avec TPS.
%p Les données collectées par le service sont définis par les services publics utilisateurs du service qui arrêtent, sous leur responsabilité, la liste des informations qui seront demandées à lusager.
%p Les organismes publics sengagent à créer des démarches pour collecter les informations strictement nécessaires à linstruction des demandes formulées auprès des acteurs publics, dans le cadre juridique prévu par chacune des démarches.
%p Ces données sont collectées et traitées par les seuls services concernés par linstruction des demandes, et précisées dans la notice dutilisation de chaque démarche publiée par lorganisme public.
%br
%h3 Traitement des données à caractère personnel
%h4 Données personnelles :
%p
En application de la loi n°78-17 Informatique et Libertés du 6 janvier 1978, vous disposez d'un droit d'accès, de rectification, de modification et de suppression concernant les données qui vous concernent. Vous pouvez exercer ce droit à travers la rubrique
%a{:href => "http://www.faire-simple.gouv.fr/contact"} Contact
%h4 Données de connexion :
%p Conformément à la loi n°2004-575 du 21 juin 2004 pour la confiance dans léconomie numérique, certaines données de connexion sont conservées par le service aux fins de protection contre les intrusions et de poursuites judiciaires le cas échéant. Ces données sont conservées pendant un an.
%br
%h3 Règles relatives aux informations sur les entreprises mises à disposition par les partenaires publics du SGMAP.
%p Le service « TPS », opéré par le SGMAP propose laffichage aux internautes dinformations issues de deux bases de données distinctes gérées par quatre organismes qui sont :
%br
%h4 LINSEE :
%p
%strong Insee (Institut national de la statistique et des études économiques)
%br/
18, boulevard Adolphe Pinard
%br/
75675 Paris cedex 14
%br/
Tél. : 01 41 17 50 50
%p
%a{:href => "http://www.insee.fr/fr/bases-de-donnees/default.asp?page=sirene.htm"} Informations de la base SIRENE
%br/
%a{:href => "http://www.sirene.fr/sirene/public/static/mentions-legales"} Condition légales dutilisation de service SIRENE
%br
%h4 INFOGREFFE :
%p
%strong INFOGREFFE 
%br/
Immeuble Le Parisien
%br/
5-7, avenue de Paris
%br/
94300 VINCENNES
%p
Les informations transmises aux autorités publiques en charges de linstruction de dossiers de candidature sont définis par le service en ligne suivant proposé aux internautes :
%a{:href => "https://www.infogreffe.fr/societes/documents-officiels/demande-kbis.html"} https://www.infogreffe.fr/societes/documents-officiels/demande-kbis.html
%p
%a{:href => "https://www.infogreffe.fr/societes/cgu-cgv.html"} Conditions générales dutilisation des données dinfogreffe
%br
%h4 TPS fait appel à dautres services opérés par le SGMAP afin de faciliter les démarches administratives :
%br
%p
%strong> France CONNECT
\ : informations complémentaires :
%a{:href => "https://franceconnect.gouv.fr/"} https://franceconnect.gouv.fr/
%p
%strong La base dadresse nationale :
%a{:href => "https://adresse.data.gouv.fr/"} https://adresse.data.gouv.fr/
%p
%strong TPS est un service de lEtat Plateforme :
%a{:href => "http://etatplateforme.modernisation.gouv.fr/"} http://etatplateforme.modernisation.gouv.fr/
%p
%strong Il met en œuvre les principes définis par le programme « Dites-le nous une fois »
%p
%a{:href => "http://www.modernisation.gouv.fr/les-services-publics-se-simplifient-et-innovent/par-des-simplifications-pour-les-entreprises/dites-le-nous-une-fois-un-programme-pour-simplifier-la-vie-des-entreprises"} http://www.modernisation.gouv.fr/les-services-publics-se-simplifient-et-innovent/par-des-simplifications-pour-les-entreprises/dites-le-nous-une-fois-un-programme-pour-simplifier-la-vie-des-entreprises
%br
%h3 Droit de reproduction :
%p Toute copie de pages du site doit avoir obtenu lautorisation du directeur de la publication.
%p La création de liens avec le site « tps.apientreprise.fr » est libre.
%p Le SGMAP se réserve le droit de demander la suppression dun lien quelle estime non conforme à lobjet du service « tps.apientreprise.fr » aux missions du SGMAP, ou plus généralement aux principes véhiculés par lAdministration.
%p Lautorisation de création de liens est valable pour tout support, à lexception de ceux diffusant des informations à caractère raciste, pornographique, xénophobe ou pouvant porter atteinte à la sensibilité du plus grand nombre.
%p
La rubrique
%a{:href => "http://www.faire-simple.gouv.fr/contact"} Contactez-nous
est à votre disposition pour nous faire part de vos remarques et suggestions.
%br
%h3 Propriété intellectuelle, droits dauteur et copyright
%p Ce service relève de la législation française et internationale sur le droit d'auteur et la propriété intellectuelle. Tous les droits de reproduction sont réservés, y compris pour les documents téléchargeables et les représentations iconographiques et photographiques.
%p La reproduction de tout ou partie de ce site sur un support électronique quel qu'il soit est formellement interdite sauf autorisation expresse du Directeur de la publication (voir ci-après : Reproduction des contenus).
%p Les marques citées sur ce site sont protégées par les organismes qui en sont propriétaires.
%br
%h3 Logiciels nécessaires à la consultation
%p Ce service est optimisé pour un affichage en 1024*768. Il est prévu pour :
%ul
%li les versions 10 ou supérieures d'Internet Explorer (sur windows 7 ou plus)
%li toutes versions de Microsoft Edge
%li les versions 19 ou supérieures dOpera
%li les versions 8 ou supérieures de Safari
%li les versions 45.3.0 ou 48 ou supérieures de Firefox
%li les versions 40 ou supérieures de Chrome
%p
La liste des versions compatibles a volontairement été réduite afin de garantir une meilleure sécurité sur nos services. Par ailleurs, le service TPS peut fonctionner sur des versions antérieures à celles évoquées ci-dessus mais sans garantie par le SGMAP.
%p Certains navigateurs peuvent bloquer par défaut l'ouverture de fenêtres sur ce site. Afin de vous permettre d'afficher certaines pages, vous devez autoriser l'ouverture des fenêtres lorsque le navigateur vous le propose en cliquant sur le bandeau d'avertissement alors affiché en haut de la page. En cas d'absence de message d'avertissement de la part de votre navigateur, vous devez configurer celui-ci afin qu'il autorise l'ouverture des fenêtres pour le site "tps.apientreprise.fr".
%br
%h3 Conception & Réalisation
%p SGMAP
%p  
%p  

View file

@ -66,7 +66,18 @@
= 'Valider le dossier'
-elsif @facade.dossier.submitted?
= form_tag(url_for({controller: 'backoffice/dossiers', action: :close, dossier_id: @facade.dossier.id}), class: 'form-inline', method: 'POST') do
= form_tag(url_for({controller: 'backoffice/dossiers', action: :receive, dossier_id: @facade.dossier.id}), class: 'form-inline', method: 'POST') do
%button#action_button.btn.btn-success
= 'Traiter le dossier'
= 'Notifier de la bonne réception'
-elsif @facade.dossier.received?
= form_tag(url_for({controller: 'backoffice/dossiers', action: :close, dossier_id: @facade.dossier.id}), class: 'form-inline action_button', method: 'POST', style: 'display:inline', 'data-toggle' => :tooltip, title: 'Accepter') do
%button#action_button.btn.btn-success
%i.fa.fa-check
= form_tag(url_for({controller: 'backoffice/dossiers', action: :refuse, dossier_id: @facade.dossier.id}), class: 'form-inline action_button', method: 'POST', style: 'display:inline', 'data-toggle' => :tooltip, title: 'Refuser') do
%button#action_button.btn.btn-danger
%i.fa.fa-times
= form_tag(url_for({controller: 'backoffice/dossiers', action: :without_continuation, dossier_id: @facade.dossier.id}), class: 'form-inline action_button', method: 'POST', style: 'display:inline', 'data-toggle' => :tooltip, title: 'Classer sans suite') do
%button#action_button.btn.btn-warning
%i.fa.fa-circle-o

View file

@ -36,13 +36,17 @@
.container.center
%p{style:'margin-top: 1em;'}
%p{class: "copyright text-muted small"}
Copyright &copy;
=link_to 'SGMAP', "http://etatplateforme.modernisation.gouv.fr"
2016 - Tous droits réservés
2016
=link_to 'contact@tps.apientreprise.fr', "mailto:contact@tps.apientreprise.fr"
\-
=link_to 'CGU / Mentions légales', cgu_path
\-
=link_to 'Contact', "mailto:contact@tps.apientreprise.fr"

View file

@ -0,0 +1,10 @@
Bonjour <%= @user.email %>
votre dossier N°<%=@dossier.id%> déposé auprès de <%= @dossier.procedure.organisation %> a été accepté ce jour à <%= @dossier.updated_at %>.
A tout moment, vous pouvez consulter le contenu de vos dossiers et les éventuels commentaires de l'administration à cette adresse : <%=users_dossier_recapitulatif_url(dossier_id: @dossier.id)%>
Bonne journée
---
L'équide TPS - tps@apientreprise.fr

View file

@ -0,0 +1,10 @@
Bonjour <%= @user.email %>
votre dossier N°<%=@dossier.id%> déposé auprès de <%= @dossier.procedure.organisation %> a été refusé ce jour à <%= @dossier.updated_at %>.
Pour en savoir plus sur le motif du refus, vous pouvez consulter le contenu de vos dossiers et les éventuels commentaires de l'administration à cette adresse : <%=users_dossier_recapitulatif_url(dossier_id: @dossier.id)%>
Bonne journée,
---
L'équide TPS - tps@apientreprise.fr

View file

@ -1,8 +1,8 @@
Bonjour <%= @user.email %>
Nous vous confirmons que votre dossier N°<%=@dossier.id%> a été déposé aurpès de <%= @dossier.procedure.organisation %> avec succès ce jour à <%= @dossier.updated_at %>.
Nous vous confirmons que votre dossier N°<%=@dossier.id%> a été déposé auprès de <%= @dossier.procedure.organisation %> avec succès ce jour à <%= @dossier.updated_at %>.
Bonne journée
Bonne journée,
---
L'équide TPS - tps@apientreprise.fr

View file

@ -2,9 +2,9 @@ Bonjour <%= @user.email %>
Votre dossier N°<%=@dossier.id%> a été validé par votre accompagnateur.
Afin de finaliser son dépot, merci de vous rendre sur <%=users_dossier_recapitulatif_url(dossier_id: @dossier.id)%>
Afin de finaliser son dépôt, merci de vous rendre sur <%=users_dossier_recapitulatif_url(dossier_id: @dossier.id)%>
Bonne journée
Bonne journée,
---
L'équide TPS - tps@apientreprise.fr

View file

@ -0,0 +1,10 @@
Bonjour <%= @user.email %>
votre dossier N°<%=@dossier.id%> déposé auprès de <%= @dossier.procedure.organisation %> a été classé sans suite ce jour à <%= @dossier.updated_at %>.
Pour en savoir plus sur les raisons de ce classement sans suite, vous pouvez consulter le contenu de vos dossiers et les éventuels commentaires de l'administration à cette adresse : <%=users_dossier_recapitulatif_url(dossier_id: @dossier.id)%>
Bonne journée,
---
L'équide TPS - tps@apientreprise.fr

View file

@ -0,0 +1,20 @@
fr:
activerecord:
models:
type_de_champ: 'Type de champ'
attributes:
type_de_champ:
type_champs:
text: 'Texte'
textarea: 'Zone de texte'
date: 'Date'
datetime: 'Date et Heure'
number: 'Nombre'
checkbox: 'checkbox'
civilite: 'Civilité'
email: 'Email'
phone: 'Téléphone'
address: 'Adresse'
yes_no: 'Oui/Non'
drop_down_list: 'Menu déroulant'
header_section: 'Titre de section'

View file

@ -36,6 +36,8 @@ Rails.application.routes.draw do
root 'root#index'
get 'cgu' => 'cgu#index'
namespace :france_connect do
get 'particulier' => 'particulier#login'
get 'particulier/callback' => 'particulier#callback'
@ -152,8 +154,13 @@ Rails.application.routes.draw do
get 'reload_pref_list'
end
get 'download_dossiers_tps' => 'dossiers#download_dossiers_tps'
resources :dossiers do
post 'valid' => 'dossiers#valid'
post 'receive' => 'dossiers#receive'
post 'refuse' => 'dossiers#refuse'
post 'without_continuation' => 'dossiers#without_continuation'
post 'close' => 'dossiers#close'
post 'invites' => '/invites#create'

View file

@ -119,18 +119,86 @@ describe Backoffice::DossiersController, type: :controller do
end
end
describe 'POST #close' do
describe 'POST #receive' do
before do
dossier.submitted!
sign_in gestionnaire
end
it 'change state to received' do
post :receive, dossier_id: dossier_id
dossier.reload
expect(dossier.state).to eq('received')
end
end
describe 'POST #refuse' do
before do
dossier.refused!
sign_in gestionnaire
end
subject { post :refuse, dossier_id: dossier_id }
it 'change state to refused' do
subject
dossier.reload
expect(dossier.state).to eq('refused')
end
it 'Notification email is sent' do
expect(NotificationMailer).to receive(:dossier_refused).and_return(NotificationMailer)
expect(NotificationMailer).to receive(:deliver_now!)
subject
end
end
describe 'POST #without_continuation' do
before do
dossier.without_continuation!
sign_in gestionnaire
end
subject { post :without_continuation, dossier_id: dossier_id }
it 'change state to without_continuation' do
subject
dossier.reload
expect(dossier.state).to eq('without_continuation')
end
it 'Notification email is sent' do
expect(NotificationMailer).to receive(:dossier_without_continuation).and_return(NotificationMailer)
expect(NotificationMailer).to receive(:deliver_now!)
subject
end
end
describe 'POST #close' do
before do
dossier.received!
sign_in gestionnaire
end
subject { post :close, dossier_id: dossier_id }
it 'change state to closed' do
post :close, dossier_id: dossier_id
subject
dossier.reload
expect(dossier.state).to eq('closed')
end
it 'Notification email is sent' do
expect(NotificationMailer).to receive(:dossier_closed).and_return(NotificationMailer)
expect(NotificationMailer).to receive(:deliver_now!)
subject
end
end
describe 'PUT #toggle_follow' do

View file

@ -40,11 +40,12 @@ feature 'add a new type de champs', js: true do
context 'user fill another one' do
let(:libelle) { 'coucou' }
let(:type_champ) { 'textarea' }
let(:type_champ_value) { 'textarea' }
let(:type_champ_label) { 'Zone de texte' }
let(:description) { 'to be or not to be' }
before do
page.find_by_id('procedure_types_de_champ_attributes_1_libelle').set libelle
select(type_champ, from: 'procedure_types_de_champ_attributes_1_type_champ')
select(type_champ_label, from: 'procedure_types_de_champ_attributes_1_type_champ')
page.find_by_id('procedure_types_de_champ_attributes_1_description').set description
click_button 'Ajouter le champ'
wait_for_ajax
@ -54,7 +55,7 @@ feature 'add a new type de champs', js: true do
scenario 'creates another types_de_champ' do
expect(page).to have_css('#procedure_types_de_champ_attributes_2_libelle')
expect(subject.libelle).to eq(libelle)
expect(subject.type_champ).to eq(type_champ)
expect(subject.type_champ).to eq(type_champ_value)
expect(subject.description).to eq(description)
expect(subject.order_place).to eq(1)
expect(procedure.types_de_champ.count).to eq(2)

View file

@ -323,10 +323,10 @@ describe Dossier do
dossier.submitted!
end
context 'when user is connect' do
context 'when user is connected' do
let(:role) { 'user' }
context 'when is post a comment' do
context 'when he posts a comment' do
let(:action) { 'comment' }
it { is_expected.to eq('submitted') }
@ -336,13 +336,45 @@ describe Dossier do
context 'when gestionnaire is connect' do
let(:role) { 'gestionnaire' }
context 'when is post a comment' do
context 'when he posts a comment' do
let(:action) { 'comment' }
it { is_expected.to eq('submitted') }
end
context 'when is closed the dossier' do
context 'when he receive the dossier' do
let(:action) { 'receive' }
it { is_expected.to eq('received') }
end
end
end
context 'when dossier is at state received' do
before do
dossier.received!
end
context 'when user is connected' do
let(:role) { 'user' }
context 'when he posts a comment' do
let(:action) { 'comment' }
it { is_expected.to eq('received') }
end
end
context 'when gestionnaire is connect' do
let(:role) { 'gestionnaire' }
context 'when he posts a comment' do
let(:action) { 'comment' }
it { is_expected.to eq('received') }
end
context 'when he closes the dossier' do
let(:action) { 'close' }
it { is_expected.to eq('closed') }
@ -350,6 +382,59 @@ describe Dossier do
end
end
context 'when dossier is at state refused' do
before do
dossier.refused!
end
context 'when user is connected' do
let(:role) { 'user' }
context 'when he posts a comment' do
let(:action) { 'comment' }
it { is_expected.to eq('refused') }
end
end
context 'when gestionnaire is connect' do
let(:role) { 'gestionnaire' }
context 'when he posts a comment' do
let(:action) { 'comment' }
it { is_expected.to eq('refused') }
end
end
end
context 'when dossier is at state without_continuation' do
before do
dossier.without_continuation!
end
context 'when user is connected' do
let(:role) { 'user' }
context 'when he posts a comment' do
let(:action) { 'comment' }
it { is_expected.to eq('without_continuation') }
end
end
context 'when gestionnaire is connect' do
let(:role) { 'gestionnaire' }
context 'when he posts a comment' do
let(:action) { 'comment' }
it { is_expected.to eq('without_continuation') }
end
end
end
context 'when dossier is at state closed' do
before do
dossier.closed!

View file

@ -119,28 +119,13 @@ describe 'backoffice/dossiers/show.html.haml', type: :view do
it { expect(rendered).to have_content('Déposé') }
it 'button Traiter le dossier is present' do
it 'button notifier de la bonne réception is present' do
expect(rendered).to have_css('#action_button')
expect(rendered).to have_content('Traiter le dossier')
expect(rendered).to have_content('Notifier de la bonne réception')
end
it 'button Valider le dossier is not present' do
expect(rendered).not_to have_content('Valider le dossier')
end
end
context 'when dossier have state closed' do
let(:state) { 'closed' }
before do
render
end
it { expect(rendered).to have_content('Accepté') }
it 'button Valider le dossier is not present' do
expect(rendered).not_to have_css('#action_button')
expect(rendered).not_to have_content('Valider le dossier')
expect(rendered).not_to have_content('Accepter le dossier')
end
end
@ -153,9 +138,26 @@ describe 'backoffice/dossiers/show.html.haml', type: :view do
it { expect(rendered).to have_content('Reçu') }
it 'button Valider le dossier is not present' do
expect(rendered).not_to have_css('#action_button')
expect(rendered).not_to have_content('Valider le dossier')
it 'button accepter / refuser / classer sans suite are present' do
expect(rendered).to have_css('.action_button[data-toggle="tooltip"][title="Accepter"]')
expect(rendered).to have_css('.action_button[data-toggle="tooltip"][title="Classer sans suite"]')
expect(rendered).to have_css('.action_button[data-toggle="tooltip"][title="Refuser"]')
end
end
context 'when dossier have state closed' do
let(:state) { 'closed' }
before do
render
end
it { expect(rendered).to have_content('Accepté') }
it 'button Accepter le dossier is not present' do
expect(rendered).not_to have_css('.action_button[data-toggle="tooltip"][title="Accepter"]')
expect(rendered).not_to have_css('.action_button[data-toggle="tooltip"][title="Classer sans suite"]')
expect(rendered).not_to have_css('.action_button[data-toggle="tooltip"][title="Refuser"]')
end
end
@ -169,8 +171,9 @@ describe 'backoffice/dossiers/show.html.haml', type: :view do
it { expect(rendered).to have_content('Sans suite') }
it 'button Valider le dossier is not present' do
expect(rendered).not_to have_css('#action_button')
expect(rendered).not_to have_content('Valider le dossier')
expect(rendered).not_to have_css('.action_button[data-toggle="tooltip"][title="Accepter"]')
expect(rendered).not_to have_css('.action_button[data-toggle="tooltip"][title="Classer sans suite"]')
expect(rendered).not_to have_css('.action_button[data-toggle="tooltip"][title="Refuser"]')
end
end
@ -184,8 +187,9 @@ describe 'backoffice/dossiers/show.html.haml', type: :view do
it { expect(rendered).to have_content('Refusé') }
it 'button Valider le dossier is not present' do
expect(rendered).not_to have_css('#action_button')
expect(rendered).not_to have_content('Valider le dossier')
expect(rendered).not_to have_css('.action_button[data-toggle="tooltip"][title="Accepter"]')
expect(rendered).not_to have_css('.action_button[data-toggle="tooltip"][title="Classer sans suite"]')
expect(rendered).not_to have_css('.action_button[data-toggle="tooltip"][title="Refuser"]')
end
end
end