diff --git a/.rubocop.yml b/.rubocop.yml
index 526ff5ee4..4919aebc8 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -83,10 +83,10 @@ Layout/ExtraSpacing:
- "Guardfile"
Layout/FirstArrayElementLineBreak:
- Enabled: false
+ Enabled: true
Layout/FirstHashElementLineBreak:
- Enabled: false
+ Enabled: true
Layout/FirstMethodArgumentLineBreak:
Enabled: false
@@ -95,58 +95,64 @@ Layout/FirstMethodParameterLineBreak:
Enabled: false
Layout/FirstParameterIndentation:
- Enabled: false
+ Enabled: true
Layout/IndentArray:
- Enabled: false
+ Enabled: true
+ EnforcedStyle: consistent
Layout/IndentAssignment:
- Enabled: false
+ Enabled: true
Layout/IndentHash:
- Enabled: false
+ Enabled: true
+ EnforcedStyle: consistent
Layout/IndentHeredoc:
- Enabled: false
+ Enabled: true
Layout/IndentationConsistency:
- Enabled: false
+ Enabled: true
Layout/IndentationWidth:
Enabled: true
Layout/InitialIndentation:
- Enabled: false
+ Enabled: true
Layout/LeadingCommentSpace:
- Enabled: false
+ Enabled: true
Layout/MultilineArrayBraceLayout:
- Enabled: false
+ Enabled: true
+ EnforcedStyle: new_line
Layout/MultilineAssignmentLayout:
Enabled: false
Layout/MultilineBlockLayout:
- Enabled: false
+ Enabled: true
Layout/MultilineHashBraceLayout:
- Enabled: false
+ Enabled: true
+ EnforcedStyle: new_line
Layout/MultilineMethodCallBraceLayout:
- Enabled: false
+ Enabled: true
+ EnforcedStyle: symmetrical
Layout/MultilineMethodCallIndentation:
- Enabled: false
+ Enabled: true
+ EnforcedStyle: indented
Layout/MultilineMethodDefinitionBraceLayout:
- Enabled: false
+ Enabled: true
Layout/MultilineOperationIndentation:
Enabled: false
Layout/RescueEnsureAlignment:
- Enabled: false
+ Enabled: true
Layout/SpaceAfterColon:
Enabled: false
diff --git a/app/controllers/admin/gestionnaires_controller.rb b/app/controllers/admin/gestionnaires_controller.rb
index 1e4ebabe4..e8f1848f3 100644
--- a/app/controllers/admin/gestionnaires_controller.rb
+++ b/app/controllers/admin/gestionnaires_controller.rb
@@ -40,9 +40,11 @@ class Admin::GestionnairesController < AdminController
attributes = params.require(:gestionnaire).permit(:email)
.merge(password: SecureRandom.hex(5))
- @gestionnaire = Gestionnaire.create(attributes.merge(
- administrateurs: [current_administrateur]
- ))
+ @gestionnaire = Gestionnaire.create(
+ attributes.merge(
+ administrateurs: [current_administrateur]
+ )
+ )
if @gestionnaire.errors.messages.empty?
User.create(attributes)
@@ -59,7 +61,7 @@ class Admin::GestionnairesController < AdminController
else
@gestionnaire.administrateurs.push current_administrateur
flash.notice = 'Accompagnateur ajouté'
- #TODO Mailer no assign_to
+ # TODO Mailer no assign_to
end
end
end
diff --git a/app/controllers/admin/procedures_controller.rb b/app/controllers/admin/procedures_controller.rb
index 80904fcfb..034df45e0 100644
--- a/app/controllers/admin/procedures_controller.rb
+++ b/app/controllers/admin/procedures_controller.rb
@@ -96,11 +96,13 @@ class Admin::ProceduresController < AdminController
procedure = current_administrateur.procedures.find(params[:procedure_id])
new_procedure_path = ProcedurePath.new(
- {
- path: params[:procedure_path],
- procedure: procedure,
- administrateur: procedure.administrateur
- })
+ {
+ path: params[:procedure_path],
+ procedure: procedure,
+ administrateur: procedure.administrateur
+ }
+ )
+
if new_procedure_path.validate
new_procedure_path.delete
else
@@ -207,15 +209,20 @@ class Admin::ProceduresController < AdminController
end
def path_list
- render json: ProcedurePath
- .joins(', procedures')
- .where("procedures.id = procedure_paths.procedure_id")
- .where("procedures.archived_at" => nil)
- .where("path LIKE ?", "%#{params[:request]}%")
- .pluck(:path, :administrateur_id)
- .inject([]) {
- |acc, value| acc.push({label: value.first, mine: value.second == current_administrateur.id})
- }.to_json
+ json_path_list = ProcedurePath
+ .joins(', procedures')
+ .where("procedures.id = procedure_paths.procedure_id")
+ .where("procedures.archived_at" => nil)
+ .where("path LIKE ?", "%#{params[:request]}%")
+ .pluck(:path, :administrateur_id)
+ .map do |value|
+ {
+ label: value.first,
+ mine: value.second == current_administrateur.id
+ }
+ end.to_json
+
+ render json: json_path_list
end
private
diff --git a/app/controllers/administrateurs/activate_controller.rb b/app/controllers/administrateurs/activate_controller.rb
new file mode 100644
index 000000000..396d31df6
--- /dev/null
+++ b/app/controllers/administrateurs/activate_controller.rb
@@ -0,0 +1,34 @@
+class Administrateurs::ActivateController < ApplicationController
+ layout "new_application"
+
+ def new
+ @administrateur = Administrateur.find_inactive_by_token(params[:token])
+
+ if !@administrateur
+ flash.alert = "Le lien de validation d'administrateur a expiré, contactez-nous à contact@tps.apientreprise.fr pour obtenir un nouveau lien."
+ redirect_to root_path
+ end
+ end
+
+ def create
+ administrateur = Administrateur.reset_password(
+ update_administrateur_params[:reset_password_token],
+ update_administrateur_params[:password]
+ )
+
+ if administrateur && administrateur.errors.empty?
+ sign_in(administrateur, scope: :administrateur)
+ flash.notice = "Mot de passe enregistré"
+ redirect_to admin_procedures_path
+ else
+ flash.alert = administrateur.errors.full_messages
+ redirect_to admin_activate_path(token: update_administrateur_params[:reset_password_token])
+ end
+ end
+
+ private
+
+ def update_administrateur_params
+ params.require(:administrateur).permit(:reset_password_token, :password)
+ end
+end
diff --git a/app/controllers/administrations_controller.rb b/app/controllers/administrations_controller.rb
index f182fc0a7..f600ecfd5 100644
--- a/app/controllers/administrations_controller.rb
+++ b/app/controllers/administrations_controller.rb
@@ -14,21 +14,26 @@ class AdministrationsController < ApplicationController
end
def create
- admin = Administrateur.new create_administrateur_params
+ administrateur = current_administration.invite_admin(create_administrateur_params[:email])
- if admin.save
+ if administrateur.errors.empty?
flash.notice = "Administrateur créé"
- AdministrationMailer.new_admin_email(admin, current_administration).deliver_now!
else
- flash.alert = admin.errors.full_messages
+ flash.alert = administrateur.errors.full_messages
end
redirect_to administrations_path
end
+ def update
+ Administrateur.find_inactive_by_id(params[:id]).invite!
+
+ redirect_to administrations_path
+ end
+
private
def create_administrateur_params
- params.require(:administrateur).permit(:email, :password)
+ params.require(:administrateur).permit(:email)
end
end
diff --git a/app/controllers/api/statistiques_controller.rb b/app/controllers/api/statistiques_controller.rb
index 2300337f9..d8c555040 100644
--- a/app/controllers/api/statistiques_controller.rb
+++ b/app/controllers/api/statistiques_controller.rb
@@ -1,9 +1,9 @@
class API::StatistiquesController < ApplicationController
def dossiers_stats
render json: {
- total: total_dossiers,
- mois: dossiers_mois
- }
+ total: total_dossiers,
+ mois: dossiers_mois
+ }
end
private
diff --git a/app/controllers/api/v1/dossiers_controller.rb b/app/controllers/api/v1/dossiers_controller.rb
index 90a19d136..5303f2f68 100644
--- a/app/controllers/api/v1/dossiers_controller.rb
+++ b/app/controllers/api/v1/dossiers_controller.rb
@@ -34,9 +34,9 @@ class API::V1::DossiersController < APIController
def pagination(dossiers)
{
- page: dossiers.current_page,
- resultats_par_page: dossiers.limit_value,
- nombre_de_page: dossiers.total_pages
+ page: dossiers.current_page,
+ resultats_par_page: dossiers.limit_value,
+ nombre_de_page: dossiers.total_pages
}
end
diff --git a/app/controllers/ban/search_controller.rb b/app/controllers/ban/search_controller.rb
index 294ad0cc4..ec079347c 100644
--- a/app/controllers/ban/search_controller.rb
+++ b/app/controllers/ban/search_controller.rb
@@ -2,9 +2,11 @@ class Ban::SearchController < ApplicationController
def get
request = params[:request]
- render json: Carto::Bano::AddressRetriever.new(request).list.inject([]) {
- |acc, value| acc.push({label: value})
- }.to_json
+ json = Carto::Bano::AddressRetriever.new(request).list.map do |value|
+ { label: value }
+ end.to_json
+
+ render json: json
end
def get_address_point
diff --git a/app/controllers/france_connect/particulier_controller.rb b/app/controllers/france_connect/particulier_controller.rb
index 3d0e0a0f7..283660636 100644
--- a/app/controllers/france_connect/particulier_controller.rb
+++ b/app/controllers/france_connect/particulier_controller.rb
@@ -1,42 +1,30 @@
class FranceConnect::ParticulierController < ApplicationController
def login
- client = FranceConnectParticulierClient.new
-
- session[:state] = SecureRandom.hex(16)
- session[:nonce] = SecureRandom.hex(16)
-
- authorization_uri = client.authorization_uri(
- scope: [:profile, :email],
- state: session[:state],
- nonce: session[:nonce]
- )
- redirect_to URI.parse(authorization_uri).to_s
+ redirect_to FranceConnectService.authorization_uri
end
def callback
- return redirect_to new_user_session_path if !params.has_key?(:code)
+ if params[:code].nil?
+ return redirect_to new_user_session_path
+ end
- user_infos = FranceConnectService.retrieve_user_informations_particulier(params[:code])
+ fetched_fc_information = FranceConnectService.retrieve_user_informations_particulier(params[:code])
- if user_infos.present?
- france_connect_information = FranceConnectInformation.find_by_france_connect_particulier user_infos
+ france_connect_information = FranceConnectInformation
+ .find_by(france_connect_particulier_id: fetched_fc_information[:france_connect_particulier_id])
- france_connect_information = FranceConnectInformation.create(
- {gender: user_infos[:gender],
- given_name: user_infos[:given_name],
- family_name: user_infos[:family_name],
- email_france_connect: user_infos[:email],
- birthdate: user_infos[:birthdate],
- birthplace: user_infos[:birthplace],
- france_connect_particulier_id: user_infos[:france_connect_particulier_id]}
- ) if france_connect_information.nil?
+ if france_connect_information.nil?
+ fetched_fc_information.save
+ france_connect_information = fetched_fc_information
+ end
- user = france_connect_information.user
- salt = FranceConnectSaltService.new(france_connect_information).salt
+ user = france_connect_information.user
+ salt = FranceConnectSaltService.new(france_connect_information).salt
- return redirect_to france_connect_particulier_new_path(fci_id: france_connect_information.id, salt: salt) if user.nil?
-
- connect_france_connect_particulier user
+ if user.nil?
+ redirect_to france_connect_particulier_new_path(fci_id: france_connect_information.id, salt: salt)
+ else
+ connect_france_connect_particulier(user)
end
rescue Rack::OAuth2::Client::Error => e
Rails.logger.error e.message
diff --git a/app/controllers/new_gestionnaire/procedures_controller.rb b/app/controllers/new_gestionnaire/procedures_controller.rb
index 33165bfd4..dd60ffbae 100644
--- a/app/controllers/new_gestionnaire/procedures_controller.rb
+++ b/app/controllers/new_gestionnaire/procedures_controller.rb
@@ -240,12 +240,12 @@ module NewGestionnaire
when 'user', 'etablissement', 'entreprise'
if filter['column'] == 'date_creation'
dossiers
- .includes(filter['table'])
- .where("#{filter['table'].pluralize}.#{filter['column']} = ?", filter['value'].to_date)
+ .includes(filter['table'])
+ .where("#{filter['table'].pluralize}.#{filter['column']} = ?", filter['value'].to_date)
else
dossiers
- .includes(filter['table'])
- .where("#{filter['table'].pluralize}.#{filter['column']} LIKE ?", "%#{filter['value']}%")
+ .includes(filter['table'])
+ .where("#{filter['table'].pluralize}.#{filter['column']} LIKE ?", "%#{filter['value']}%")
end
end.pluck(:id)
diff --git a/app/controllers/new_gestionnaire/recherche_controller.rb b/app/controllers/new_gestionnaire/recherche_controller.rb
index 4d4ce7798..0f7dcf159 100644
--- a/app/controllers/new_gestionnaire/recherche_controller.rb
+++ b/app/controllers/new_gestionnaire/recherche_controller.rb
@@ -5,17 +5,21 @@ module NewGestionnaire
# exact id match?
if @search_terms.to_i != 0
- @dossiers = current_gestionnaire.dossiers.where(id: @search_terms.to_i)
+ @dossiers = current_gestionnaire.dossiers.where(id: @search_terms.to_i) +
+ current_gestionnaire.dossiers_from_avis.where(id: @search_terms.to_i)
+ @dossiers.uniq!
end
- @dossiers = Dossier.none if @dossiers.nil?
+ if @dossiers.nil?
+ @dossiers = Dossier.none
+ end
# full text search
if @dossiers.empty?
@dossiers = Search.new(
- gestionnaire: current_gestionnaire,
- query: @search_terms,
- page: params[:page]
+ gestionnaire: current_gestionnaire,
+ query: @search_terms,
+ page: params[:page]
).results
end
end
diff --git a/app/controllers/root_controller.rb b/app/controllers/root_controller.rb
index 51ff9066f..7137999c5 100644
--- a/app/controllers/root_controller.rb
+++ b/app/controllers/root_controller.rb
@@ -35,10 +35,10 @@ class RootController < ApplicationController
.each do |champ|
champ.type_de_champ.drop_down_list = DropDownList.new(type_de_champ: champ.type_de_champ)
champ.drop_down_list.value =
-"option A
-option B
--- avant l'option C --
-option C"
+ "option A
+ option B
+ -- avant l'option C --
+ option C"
champ.value = '["option B", "option C"]'
end
diff --git a/app/controllers/stats_controller.rb b/app/controllers/stats_controller.rb
index b62d12505..342dcd762 100644
--- a/app/controllers/stats_controller.rb
+++ b/app/controllers/stats_controller.rb
@@ -47,7 +47,7 @@ class StatsController < ApplicationController
def last_four_months_hash(association, date_attribute)
min_date = 3.months.ago.beginning_of_month.to_date
- association
+ association
.where(date_attribute => min_date..max_date)
.group("DATE_TRUNC('month', #{date_attribute.to_s})")
.count
diff --git a/app/controllers/users/carte_controller.rb b/app/controllers/users/carte_controller.rb
index a6ec9f2b3..8c6314033 100644
--- a/app/controllers/users/carte_controller.rb
+++ b/app/controllers/users/carte_controller.rb
@@ -61,8 +61,8 @@ class Users::CarteController < UsersController
def self.route_authorization
{
- states: [:brouillon, :en_construction],
- api_carto: true
+ states: [:brouillon, :en_construction],
+ api_carto: true
}
end
end
diff --git a/app/controllers/users/description_controller.rb b/app/controllers/users/description_controller.rb
index 946d24772..e991408d7 100644
--- a/app/controllers/users/description_controller.rb
+++ b/app/controllers/users/description_controller.rb
@@ -95,7 +95,7 @@ class Users::DescriptionController < UsersController
def self.route_authorization
{
- states: [:brouillon, :en_construction]
+ states: [:brouillon, :en_construction]
}
end
diff --git a/app/controllers/users/dossiers_controller.rb b/app/controllers/users/dossiers_controller.rb
index e382a896e..3a95e5199 100644
--- a/app/controllers/users/dossiers_controller.rb
+++ b/app/controllers/users/dossiers_controller.rb
@@ -151,7 +151,7 @@ class Users::DossiersController < UsersController
def self.route_authorization
{
- states: [:brouillon]
+ states: [:brouillon]
}
end
diff --git a/app/controllers/users/recapitulatif_controller.rb b/app/controllers/users/recapitulatif_controller.rb
index bdd1df237..b8b7fb03a 100644
--- a/app/controllers/users/recapitulatif_controller.rb
+++ b/app/controllers/users/recapitulatif_controller.rb
@@ -18,7 +18,7 @@ class Users::RecapitulatifController < UsersController
def self.route_authorization
{
- states: [:en_construction, :en_instruction, :sans_suite, :accepte, :refuse]
+ states: [:en_construction, :en_instruction, :sans_suite, :accepte, :refuse]
}
end
diff --git a/app/controllers/users/sessions_controller.rb b/app/controllers/users/sessions_controller.rb
index 8c77f7aac..df00724b4 100644
--- a/app/controllers/users/sessions_controller.rb
+++ b/app/controllers/users/sessions_controller.rb
@@ -12,7 +12,7 @@ class Users::SessionsController < Sessions::SessionsController
error_procedure
end
- #POST /resource/sign_in
+ # POST /resource/sign_in
def create
remember_me = params[:user][:remember_me] == '1'
try_to_authenticate(User, remember_me)
@@ -49,11 +49,8 @@ class Users::SessionsController < Sessions::SessionsController
sign_out :user
case connected_with_france_connect
- when 'entreprise'
- redirect_to FRANCE_CONNECT.entreprise_logout_endpoint
- return
when 'particulier'
- redirect_to FRANCE_CONNECT.particulier_logout_endpoint
+ redirect_to FRANCE_CONNECT[:particulier][:logout_endpoint]
return
end
end
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index f531a487f..15c7ba21f 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -16,9 +16,10 @@ class UsersController < ApplicationController
end
def authorized_routes? controller
- redirect_to_root_path 'Le statut de votre dossier n\'autorise pas cette URL' if !UserRoutesAuthorizationService.authorized_route?(
- controller,
- current_user_dossier)
+ if !UserRoutesAuthorizationService.authorized_route?(controller, current_user_dossier)
+ redirect_to_root_path 'Le statut de votre dossier n\'autorise pas cette URL'
+ end
+
rescue ActiveRecord::RecordNotFound
redirect_to_root_path 'Vous n’avez pas accès à ce dossier.'
end
diff --git a/app/decorators/entreprise_decorator.rb b/app/decorators/entreprise_decorator.rb
index 155a76b0c..21d32e4d9 100644
--- a/app/decorators/entreprise_decorator.rb
+++ b/app/decorators/entreprise_decorator.rb
@@ -2,7 +2,7 @@ class EntrepriseDecorator < Draper::Decorator
delegate_all
def raison_sociale_or_name
- raison_sociale.blank? ? nom + ' ' + prenom : raison_sociale
+ raison_sociale.blank? ? "#{nom} #{prenom}" : raison_sociale
end
def effectif
diff --git a/app/facades/dossier_facades.rb b/app/facades/dossier_facades.rb
index 160d5e3b5..f41ebd9e8 100644
--- a/app/facades/dossier_facades.rb
+++ b/app/facades/dossier_facades.rb
@@ -1,5 +1,5 @@
class DossierFacades
- #TODO rechercher en fonction de la personne/email
+ # TODO rechercher en fonction de la personne/email
def initialize(dossier_id, email, champ_id = nil)
@dossier = Dossier.find(dossier_id)
@champ_id = champ_id
diff --git a/app/facades/invite_dossier_facades.rb b/app/facades/invite_dossier_facades.rb
index 6aaad2450..895e6a684 100644
--- a/app/facades/invite_dossier_facades.rb
+++ b/app/facades/invite_dossier_facades.rb
@@ -1,5 +1,5 @@
class InviteDossierFacades < DossierFacades
- #TODO rechercher en fonction de la personne/email
+ # TODO rechercher en fonction de la personne/email
def initialize id, email
@dossier = Invite.where(email: email, id: id).first!.dossier
end
diff --git a/app/jobs/find_dubious_procedures_job.rb b/app/jobs/find_dubious_procedures_job.rb
index 5c6122db8..babe5a51c 100644
--- a/app/jobs/find_dubious_procedures_job.rb
+++ b/app/jobs/find_dubious_procedures_job.rb
@@ -1,13 +1,15 @@
class FindDubiousProceduresJob < ApplicationJob
queue_as :cron
- FORBIDDEN_KEYWORDS = ['IBAN', 'NIR', 'NIRPP', 'race', 'religion',
- 'carte bancaire', 'carte bleue', 'sécurité sociale']
+ FORBIDDEN_KEYWORDS = [
+ 'IBAN', 'NIR', 'NIRPP', 'race', 'religion',
+ 'carte bancaire', 'carte bleue', 'sécurité sociale'
+ ]
def perform(*args)
# \\y is a word boundary
forbidden_regexp = FORBIDDEN_KEYWORDS
- .map { |keyword| '\\y' + keyword + '\\y' }
+ .map { |keyword| "\\y#{keyword}\\y" }
.join('|')
# ~* -> case insensitive regexp match
diff --git a/app/lib/carto/bano/address_retriever.rb b/app/lib/carto/bano/address_retriever.rb
index 83fb03de3..895320adc 100644
--- a/app/lib/carto/bano/address_retriever.rb
+++ b/app/lib/carto/bano/address_retriever.rb
@@ -25,8 +25,8 @@ module Carto
return []
end
- result['features'].inject([]) do |acc, feature|
- acc.push feature['properties']['label']
+ result['features'].map do |feature|
+ feature['properties']['label']
end
rescue TypeError, JSON::ParserError
[]
diff --git a/app/lib/carto/sgmap/cadastre/adapter.rb b/app/lib/carto/sgmap/cadastre/adapter.rb
index 9e2a24d47..ae9d0bce5 100644
--- a/app/lib/carto/sgmap/cadastre/adapter.rb
+++ b/app/lib/carto/sgmap/cadastre/adapter.rb
@@ -8,25 +8,25 @@ class CARTO::SGMAP::Cadastre::Adapter
end
def to_params
- data_source[:features].inject([]) do |acc, feature|
+ data_source[:features].map do |feature|
tmp = filter_properties feature[:properties]
tmp[:geometry] = feature[:geometry]
- acc << tmp
+ tmp
end
end
def filter_properties properties
{
- surface_intersection: properties[:surface_intersection],
- surface_parcelle: properties[:surface_parcelle],
- numero: properties[:numero],
- feuille: properties[:feuille],
- section: properties[:section],
- code_dep: properties[:code_dep],
- nom_com: properties[:nom_com],
- code_com: properties[:code_com],
- code_arr: properties[:code_arr]
+ surface_intersection: properties[:surface_intersection],
+ surface_parcelle: properties[:surface_parcelle],
+ numero: properties[:numero],
+ feuille: properties[:feuille],
+ section: properties[:section],
+ code_dep: properties[:code_dep],
+ nom_com: properties[:nom_com],
+ code_com: properties[:code_com],
+ code_arr: properties[:code_arr]
}
end
end
diff --git a/app/lib/siade/entreprise_adapter.rb b/app/lib/siade/entreprise_adapter.rb
index d926ae189..97723db98 100644
--- a/app/lib/siade/entreprise_adapter.rb
+++ b/app/lib/siade/entreprise_adapter.rb
@@ -23,18 +23,20 @@ class SIADE::EntrepriseAdapter
end
def attr_to_fetch
- [:siren,
- :capital_social,
- :numero_tva_intracommunautaire,
- :forme_juridique,
- :forme_juridique_code,
- :nom_commercial,
- :raison_sociale,
- :siret_siege_social,
- :code_effectif_entreprise,
- :date_creation,
- :nom,
- :prenom]
+ [
+ :siren,
+ :capital_social,
+ :numero_tva_intracommunautaire,
+ :forme_juridique,
+ :forme_juridique_code,
+ :nom_commercial,
+ :raison_sociale,
+ :siret_siege_social,
+ :code_effectif_entreprise,
+ :date_creation,
+ :nom,
+ :prenom
+ ]
end
def mandataires_sociaux
diff --git a/app/lib/siade/etablissement_adapter.rb b/app/lib/siade/etablissement_adapter.rb
index 3de8f816d..ef03721b3 100644
--- a/app/lib/siade/etablissement_adapter.rb
+++ b/app/lib/siade/etablissement_adapter.rb
@@ -23,10 +23,11 @@ class SIADE::EtablissementAdapter
end
def attr_to_fetch
- [:siret,
- :siege_social,
- :naf,
- :libelle_naf
+ [
+ :siret,
+ :siege_social,
+ :naf,
+ :libelle_naf
]
end
@@ -41,12 +42,14 @@ class SIADE::EtablissementAdapter
end
def address_attribut_to_fetch
- [:numero_voie,
- :type_voie,
- :nom_voie,
- :complement_adresse,
- :code_postal,
- :localite,
- :code_insee_localite]
+ [
+ :numero_voie,
+ :type_voie,
+ :nom_voie,
+ :complement_adresse,
+ :code_postal,
+ :localite,
+ :code_insee_localite
+ ]
end
end
diff --git a/app/lib/siade/rna_adapter.rb b/app/lib/siade/rna_adapter.rb
index 80580c336..fd4686eee 100644
--- a/app/lib/siade/rna_adapter.rb
+++ b/app/lib/siade/rna_adapter.rb
@@ -23,12 +23,13 @@ class SIADE::RNAAdapter
end
def attr_to_fetch
- [:id,
- :titre,
- :objet,
- :date_creation,
- :date_declaration,
- :date_publication
+ [
+ :id,
+ :titre,
+ :objet,
+ :date_creation,
+ :date_declaration,
+ :date_publication
]
end
end
diff --git a/app/mailers/administration_mailer.rb b/app/mailers/administration_mailer.rb
index 0bafaec32..bcc0839eb 100644
--- a/app/mailers/administration_mailer.rb
+++ b/app/mailers/administration_mailer.rb
@@ -9,6 +9,13 @@ class AdministrationMailer < ApplicationMailer
subject: "Création d'un compte Admin TPS")
end
+ def invite_admin(admin, reset_password_token)
+ @reset_password_token = reset_password_token
+ mail(to: admin.email,
+ subject: "TPS - Activez votre compte administrateur",
+ reply_to: "equipe@tps.apientreprise.fr")
+ end
+
def dubious_procedures(procedures_and_type_de_champs)
@procedures_and_type_de_champs = procedures_and_type_de_champs
mail(to: 'equipe@tps.apientreprise.fr',
diff --git a/app/models/administrateur.rb b/app/models/administrateur.rb
index d23ce1cf4..18ad7e7ae 100644
--- a/app/models/administrateur.rb
+++ b/app/models/administrateur.rb
@@ -9,6 +9,16 @@ class Administrateur < ActiveRecord::Base
include CredentialsSyncableConcern
+ scope :inactive, -> { where(active: false) }
+
+ def self.find_inactive_by_token(reset_password_token)
+ self.inactive.with_reset_password_token(reset_password_token)
+ end
+
+ def self.find_inactive_by_id(id)
+ self.inactive.find(id)
+ end
+
def ensure_api_token
if api_token.nil?
self.api_token = generate_api_token
@@ -19,6 +29,46 @@ class Administrateur < ActiveRecord::Base
update_attributes(api_token: generate_api_token)
end
+ def registration_state
+ if active?
+ 'Actif'
+ elsif reset_password_period_valid?
+ 'En attente'
+ else
+ 'Expiré'
+ end
+ end
+
+ def invite!
+ if active?
+ raise "Impossible d'inviter un utilisateur déjà actif !"
+ end
+
+ reset_password_token = set_reset_password_token
+
+ AdministrationMailer.invite_admin(self, reset_password_token).deliver_now!
+
+ reset_password_token
+ end
+
+ def invitation_expired?
+ !active && !reset_password_period_valid?
+ end
+
+ def self.reset_password(reset_password_token, password)
+ administrateur = self.reset_password_by_token({
+ password: password,
+ password_confirmation: password,
+ reset_password_token: reset_password_token
+ })
+
+ if administrateur && administrateur.errors.empty?
+ administrateur.update_column(:active, true)
+ end
+
+ administrateur
+ end
+
private
def generate_api_token
diff --git a/app/models/administration.rb b/app/models/administration.rb
index f19ea8226..a2e3b56fa 100644
--- a/app/models/administration.rb
+++ b/app/models/administration.rb
@@ -6,4 +6,19 @@ class Administration < ActiveRecord::Base
def self.from_omniauth(params)
find_by(email: params["info"]["email"])
end
+
+ def invite_admin(email)
+ administrateur = Administrateur.new({
+ email: email,
+ active: false
+ })
+ administrateur.password = administrateur.password_confirmation = SecureRandom.hex
+
+ if administrateur.save
+ AdministrationMailer.new_admin_email(administrateur, self).deliver_now!
+ administrateur.invite!
+ end
+
+ administrateur
+ end
end
diff --git a/app/models/champ.rb b/app/models/champ.rb
index d5932bef6..ca6a59c8c 100644
--- a/app/models/champ.rb
+++ b/app/models/champ.rb
@@ -48,15 +48,15 @@ class Champ < ActiveRecord::Base
end
def self.regions
- JSON.parse(Carto::GeoAPI::Driver.regions).sort_by { |e| e['nom'] }.inject([]) { |acc, liste| acc.push(liste['nom']) }
+ JSON.parse(Carto::GeoAPI::Driver.regions).sort_by { |e| e['nom'] }.pluck("nom")
end
def self.departements
- JSON.parse(Carto::GeoAPI::Driver.departements).inject([]) { |acc, liste| acc.push(liste['code'] + ' - ' + liste['nom']) }.push('99 - Étranger')
+ JSON.parse(Carto::GeoAPI::Driver.departements).map { |liste| "#{liste['code']} - #{liste['nom']}" }.push('99 - Étranger')
end
def self.pays
- JSON.parse(Carto::GeoAPI::Driver.pays).inject([]) { |acc, liste| acc.push(liste['nom']) }
+ JSON.parse(Carto::GeoAPI::Driver.pays).pluck("nom")
end
def to_s
diff --git a/app/models/concerns/credentials_syncable_concern.rb b/app/models/concerns/credentials_syncable_concern.rb
index 64515b393..bddaf5209 100644
--- a/app/models/concerns/credentials_syncable_concern.rb
+++ b/app/models/concerns/credentials_syncable_concern.rb
@@ -1,18 +1,18 @@
module CredentialsSyncableConcern
extend ActiveSupport::Concern
- included do
- after_update :sync_credentials
- end
+ included do
+ after_update :sync_credentials
+ end
- def sync_credentials
- if email_changed? || encrypted_password_changed?
- return force_sync_credentials
- end
- true
+ def sync_credentials
+ if email_changed? || encrypted_password_changed?
+ return force_sync_credentials
end
+ true
+ end
- def force_sync_credentials
- SyncCredentialsService.new(self.class, email_was, email, encrypted_password).change_credentials!
- end
+ def force_sync_credentials
+ SyncCredentialsService.new(self.class, email_was, email, encrypted_password).change_credentials!
+ end
end
diff --git a/app/models/concerns/tags_substitution_concern.rb b/app/models/concerns/tags_substitution_concern.rb
index b224e7f46..6dcfc25ce 100644
--- a/app/models/concerns/tags_substitution_concern.rb
+++ b/app/models/concerns/tags_substitution_concern.rb
@@ -28,22 +28,32 @@ module TagsSubstitutionConcern
end
def dossier_tags
- [{ libelle: 'motivation',
- description: 'Motivation facultative associée à la décision finale d’acceptation, refus ou classement sans suite',
- target: :motivation,
- dossier_termine_only: true },
- { libelle: 'date de dépôt',
- description: 'Date du passage en construction du dossier par l’usager',
- lambda: -> (d) { format_date(d.en_construction_at) } },
- { libelle: 'date de passage en instruction',
- description: '',
- lambda: -> (d) { format_date(d.en_instruction_at) } },
- { libelle: 'date de décision',
- description: 'Date de la décision d’acceptation, refus, ou classement sans suite',
- lambda: -> (d) { format_date(d.processed_at) },
- dossier_termine_only: true },
- { libelle: 'libellé procédure', description: '', lambda: -> (d) { d.procedure.libelle } },
- { libelle: 'numéro du dossier', description: '', target: :id }]
+ [
+ {
+ libelle: 'motivation',
+ description: 'Motivation facultative associée à la décision finale d’acceptation, refus ou classement sans suite',
+ target: :motivation,
+ dossier_termine_only: true
+ },
+ {
+ libelle: 'date de dépôt',
+ description: 'Date du passage en construction du dossier par l’usager',
+ lambda: -> (d) { format_date(d.en_construction_at) }
+ },
+ {
+ libelle: 'date de passage en instruction',
+ description: '',
+ lambda: -> (d) { format_date(d.en_instruction_at) }
+ },
+ {
+ libelle: 'date de décision',
+ description: 'Date de la décision d’acceptation, refus, ou classement sans suite',
+ lambda: -> (d) { format_date(d.processed_at) },
+ dossier_termine_only: true
+ },
+ { libelle: 'libellé procédure', description: '', lambda: -> (d) { d.procedure.libelle } },
+ { libelle: 'numéro du dossier', description: '', target: :id }
+ ]
end
def format_date(date)
@@ -55,16 +65,20 @@ module TagsSubstitutionConcern
end
def individual_tags
- [{ libelle: 'civilité', description: 'M., Mme', target: :gender },
- { libelle: 'nom', description: "nom de l'usager", target: :nom },
- { libelle: 'prénom', description: "prénom de l'usager", target: :prenom }]
+ [
+ { libelle: 'civilité', description: 'M., Mme', target: :gender },
+ { libelle: 'nom', description: "nom de l'usager", target: :nom },
+ { libelle: 'prénom', description: "prénom de l'usager", target: :prenom }
+ ]
end
def entreprise_tags
- [{ libelle: 'SIREN', description: '', target: :siren },
- { libelle: 'numéro de TVA intracommunautaire', description: '', target: :numero_tva_intracommunautaire },
- { libelle: 'SIRET du siège social', description: '', target: :siret_siege_social },
- { libelle: 'raison sociale', description: '', target: :raison_sociale }]
+ [
+ { libelle: 'SIREN', description: '', target: :siren },
+ { libelle: 'numéro de TVA intracommunautaire', description: '', target: :numero_tva_intracommunautaire },
+ { libelle: 'SIRET du siège social', description: '', target: :siret_siege_social },
+ { libelle: 'raison sociale', description: '', target: :raison_sociale }
+ ]
end
def etablissement_tags
@@ -83,7 +97,8 @@ module TagsSubstitutionConcern
[dossier_tags, dossier],
[individual_tags, dossier.individual],
[entreprise_tags, dossier.entreprise],
- [etablissement_tags, dossier.entreprise&.etablissement]]
+ [etablissement_tags, dossier.entreprise&.etablissement]
+ ]
tags_and_datas
.map { |(tags, data)| [filter_tags(tags, dossier.termine?), data] }
diff --git a/app/models/etablissement.rb b/app/models/etablissement.rb
index 5e480ae85..23fc3b0c0 100644
--- a/app/models/etablissement.rb
+++ b/app/models/etablissement.rb
@@ -11,7 +11,7 @@ class Etablissement < ActiveRecord::Base
end
def inline_adresse
- #squeeze needed because of space in excess in the data
+ # squeeze needed because of space in excess in the data
"#{numero_voie} #{type_voie} #{nom_voie}, #{complement_adresse}, #{code_postal} #{localite}".squeeze(' ')
end
end
diff --git a/app/models/france_connect_information.rb b/app/models/france_connect_information.rb
index 6bf7f7a85..76e804399 100644
--- a/app/models/france_connect_information.rb
+++ b/app/models/france_connect_information.rb
@@ -2,8 +2,4 @@ class FranceConnectInformation < ActiveRecord::Base
belongs_to :user
validates :france_connect_particulier_id, presence: true, allow_blank: false, allow_nil: false
-
- def self.find_by_france_connect_particulier user_info
- FranceConnectInformation.find_by(france_connect_particulier_id: user_info[:france_connect_particulier_id])
- end
end
diff --git a/app/models/france_connect_particulier_client.rb b/app/models/france_connect_particulier_client.rb
index bc0e99e9c..072b5ab90 100644
--- a/app/models/france_connect_particulier_client.rb
+++ b/app/models/france_connect_particulier_client.rb
@@ -1,16 +1,9 @@
class FranceConnectParticulierClient < OpenIDConnect::Client
- def initialize params={}
- super(
- identifier: FRANCE_CONNECT.particulier_identifier,
- secret: FRANCE_CONNECT.particulier_secret,
+ def initialize(code = nil)
+ super(FRANCE_CONNECT[:particulier])
- redirect_uri: FRANCE_CONNECT.particulier_redirect_uri,
-
- authorization_endpoint: FRANCE_CONNECT.particulier_authorization_endpoint,
- token_endpoint: FRANCE_CONNECT.particulier_token_endpoint,
- userinfo_endpoint: FRANCE_CONNECT.particulier_userinfo_endpoint,
- logout_endpoint: FRANCE_CONNECT.particulier_logout_endpoint
- )
- self.authorization_code = params[:code] if params.has_key? :code
+ if code.present?
+ self.authorization_code = code
+ end
end
end
diff --git a/app/models/gestionnaire.rb b/app/models/gestionnaire.rb
index 2518679a6..4a71848a9 100644
--- a/app/models/gestionnaire.rb
+++ b/app/models/gestionnaire.rb
@@ -10,6 +10,7 @@ class Gestionnaire < ActiveRecord::Base
has_many :followed_dossiers, through: :follows, source: :dossier
has_many :follows
has_many :avis
+ has_many :dossiers_from_avis, through: :avis, source: :dossier
include CredentialsSyncableConcern
@@ -54,8 +55,7 @@ class Gestionnaire < ActiveRecord::Base
procedure_ids = followed_dossiers.pluck(:procedure_id)
if procedure_ids.include?(procedure.id)
- return followed_dossiers.where(procedure_id: procedure.id)
- .inject(0) do |acc, dossier|
+ return followed_dossiers.where(procedure_id: procedure.id).inject(0) do |acc, dossier|
acc += dossier.notifications.where(already_read: false).count
end
end
@@ -83,9 +83,9 @@ class Gestionnaire < ActiveRecord::Base
start_date = DateTime.now.beginning_of_week
active_procedure_overviews = procedures
- .publiees
- .map { |procedure| procedure.procedure_overview(start_date) }
- .select(&:had_some_activities?)
+ .publiees
+ .map { |procedure| procedure.procedure_overview(start_date) }
+ .select(&:had_some_activities?)
if active_procedure_overviews.count == 0
nil
@@ -107,7 +107,7 @@ class Gestionnaire < ActiveRecord::Base
.find_by(gestionnaire: self, dossier: dossier)
if follow.present?
- #retirer le seen_at.present? une fois la contrainte de presence en base (et les migrations ad hoc)
+ # retirer le seen_at.present? une fois la contrainte de presence en base (et les migrations ad hoc)
champs_publiques = follow.demande_seen_at.present? &&
follow.dossier.champs.updated_since?(follow.demande_seen_at).any?
@@ -124,8 +124,8 @@ class Gestionnaire < ActiveRecord::Base
messagerie = follow.messagerie_seen_at.present? &&
dossier.commentaires
- .where.not(email: 'contact@tps.apientreprise.fr')
- .updated_since?(follow.messagerie_seen_at).any?
+ .where.not(email: 'contact@tps.apientreprise.fr')
+ .updated_since?(follow.messagerie_seen_at).any?
annotations_hash(demande, annotations_privees, avis_notif, messagerie)
else
@@ -154,22 +154,28 @@ class Gestionnaire < ActiveRecord::Base
private
def valid_couple_table_attr? table, column
- couples = [{
- table: :dossier,
- column: :dossier_id
- }, {
- table: :procedure,
- column: :libelle
- }, {
- table: :etablissement,
- column: :siret
- }, {
- table: :entreprise,
- column: :raison_sociale
- }, {
- table: :dossier,
- column: :state
- }]
+ couples = [
+ {
+ table: :dossier,
+ column: :dossier_id
+ },
+ {
+ table: :procedure,
+ column: :libelle
+ },
+ {
+ table: :etablissement,
+ column: :siret
+ },
+ {
+ table: :entreprise,
+ column: :raison_sociale
+ },
+ {
+ table: :dossier,
+ column: :state
+ }
+ ]
couples.include?({table: table, column: column})
end
@@ -205,10 +211,12 @@ class Gestionnaire < ActiveRecord::Base
.where('commentaires.updated_at > follows.messagerie_seen_at')
.where.not(commentaires: { email: 'contact@tps.apientreprise.fr' })
- [updated_demandes,
- updated_pieces_justificatives,
- updated_annotations,
- updated_avis,
- updated_messagerie].map { |query| query.distinct.ids }.flatten.uniq
+ [
+ updated_demandes,
+ updated_pieces_justificatives,
+ updated_annotations,
+ updated_avis,
+ updated_messagerie
+ ].flat_map { |query| query.distinct.ids }.uniq
end
end
diff --git a/app/models/procedure_overview.rb b/app/models/procedure_overview.rb
index 98519936c..ddb70a8d1 100644
--- a/app/models/procedure_overview.rb
+++ b/app/models/procedure_overview.rb
@@ -30,9 +30,11 @@ class ProcedureOverview
end
def had_some_activities?
- [@dossiers_en_instruction_count,
- @dossiers_en_construction_count,
- @created_dossiers_count].reduce(:+) > 0
+ [
+ @dossiers_en_instruction_count,
+ @dossiers_en_construction_count,
+ @created_dossiers_count
+ ].reduce(:+) > 0
end
def dossiers_en_construction_description
diff --git a/app/models/search.rb b/app/models/search.rb
index 89f01ea03..7e455f4a8 100644
--- a/app/models/search.rb
+++ b/app/models/search.rb
@@ -65,11 +65,11 @@ class Search < ActiveRecord::Base
Results.new(q)
end
- #def self.refresh
- # # TODO: could be executed concurrently
- # # See https://github.com/thoughtbot/scenic#what-about-materialized-views
- # Scenic.database.refresh_materialized_view(table_name, concurrently: false)
- #end
+ # def self.refresh
+ # # TODO: could be executed concurrently
+ # # See https://github.com/thoughtbot/scenic#what-about-materialized-views
+ # Scenic.database.refresh_materialized_view(table_name, concurrently: false)
+ # end
private
diff --git a/app/services/france_connect_salt_service.rb b/app/services/france_connect_salt_service.rb
index a28476952..97d5d83d0 100644
--- a/app/services/france_connect_salt_service.rb
+++ b/app/services/france_connect_salt_service.rb
@@ -11,6 +11,6 @@ class FranceConnectSaltService
end
def salt
- Digest::MD5.hexdigest(model.france_connect_particulier_id + model.given_name + model.family_name + FRANCE_CONNECT.particulier_secret + DateTime.now.to_date.to_s)
+ Digest::MD5.hexdigest(model.france_connect_particulier_id + model.given_name + model.family_name + FRANCE_CONNECT[:particulier][:secret] + DateTime.now.to_date.to_s)
end
end
diff --git a/app/services/france_connect_service.rb b/app/services/france_connect_service.rb
index 883169e70..a0ba7fb04 100644
--- a/app/services/france_connect_service.rb
+++ b/app/services/france_connect_service.rb
@@ -1,12 +1,29 @@
class FranceConnectService
- def self.retrieve_user_informations_particulier code
- client = FranceConnectParticulierClient.new code: code
+ def self.authorization_uri
+ client = FranceConnectParticulierClient.new
- access_token = client.access_token!(client_auth_method: :secret)
- user_info = access_token.userinfo!
- hash = Hashie::Mash.new user_info.raw_attributes
+ client.authorization_uri(
+ scope: [:profile, :email],
+ state: SecureRandom.hex(16),
+ nonce: SecureRandom.hex(16)
+ )
+ end
- hash.france_connect_particulier_id = hash.sub
- hash
+ def self.retrieve_user_informations_particulier(code)
+ client = FranceConnectParticulierClient.new(code)
+
+ user_info = client.access_token!(client_auth_method: :secret)
+ .userinfo!
+ .raw_attributes
+
+ FranceConnectInformation.new(
+ gender: user_info[:gender],
+ given_name: user_info[:given_name],
+ family_name: user_info[:family_name],
+ email_france_connect: user_info[:email],
+ birthdate: user_info[:birthdate],
+ birthplace: user_info[:birthplace],
+ france_connect_particulier_id: user_info[:sub]
+ )
end
end
diff --git a/app/services/geojson_service.rb b/app/services/geojson_service.rb
index 1f6562089..27a80aa4e 100644
--- a/app/services/geojson_service.rb
+++ b/app/services/geojson_service.rb
@@ -1,10 +1,10 @@
class GeojsonService
def self.to_json_polygon_for_qp coordinates
polygon = {
- geo: {
- type: "Polygon",
- coordinates: [coordinates]
- }
+ geo: {
+ type: "Polygon",
+ coordinates: [coordinates]
+ }
}
polygon.to_json
@@ -12,15 +12,15 @@ class GeojsonService
def self.to_json_polygon_for_cadastre coordinates
polygon = {
- geom: {
- type: "Feature",
- geometry: {
- type: "Polygon",
- coordinates: [
- coordinates
- ]
- }
+ geom: {
+ type: "Feature",
+ geometry: {
+ type: "Polygon",
+ coordinates: [
+ coordinates
+ ]
}
+ }
}
polygon.to_json
diff --git a/app/services/module_api_carto_service.rb b/app/services/module_api_carto_service.rb
index 2cff27de4..492a2543d 100644
--- a/app/services/module_api_carto_service.rb
+++ b/app/services/module_api_carto_service.rb
@@ -26,14 +26,16 @@ class ModuleApiCartoService
def self.generate_qp coordinates
coordinates.inject({}) { |acc, coordinate|
acc.merge CARTO::SGMAP::QuartiersPrioritaires::Adapter.new(
- coordinate.map { |element| [element['lng'], element['lat']] }).to_params
+ coordinate.map { |element| [element['lng'], element['lat']] }
+ ).to_params
}
end
def self.generate_cadastre coordinates
- (coordinates.inject([]) { |acc, coordinate|
- acc << CARTO::SGMAP::Cadastre::Adapter.new(
- coordinate.map { |element| [element['lng'], element['lat']] }).to_params
- }).flatten
+ coordinates.flat_map do |coordinate|
+ CARTO::SGMAP::Cadastre::Adapter.new(
+ coordinate.map { |element| [element['lng'], element['lat']] }
+ ).to_params
+ end
end
end
diff --git a/app/services/notification_service.rb b/app/services/notification_service.rb
index 991120e95..aacbc527c 100644
--- a/app/services/notification_service.rb
+++ b/app/services/notification_service.rb
@@ -15,11 +15,11 @@ class NotificationService
def notification
@notification ||=
- begin
- Notification.find_by! dossier_id: @dossier_id, already_read: false, type_notif: @type_notif
- rescue ActiveRecord::RecordNotFound
- Notification.new dossier_id: @dossier_id, type_notif: @type_notif, liste: []
- end
+ begin
+ Notification.find_by! dossier_id: @dossier_id, already_read: false, type_notif: @type_notif
+ rescue ActiveRecord::RecordNotFound
+ Notification.new dossier_id: @dossier_id, type_notif: @type_notif, liste: []
+ end
end
def text_for_notif attribut=''
diff --git a/app/services/pieces_justificatives_service.rb b/app/services/pieces_justificatives_service.rb
index 106526e06..a99e1334f 100644
--- a/app/services/pieces_justificatives_service.rb
+++ b/app/services/pieces_justificatives_service.rb
@@ -1,32 +1,32 @@
class PiecesJustificativesService
def self.upload!(dossier, user, params)
tpj_contents = dossier.types_de_piece_justificative
- .map { |tpj| [tpj, params["piece_justificative_#{tpj.id}"]] }
- .select { |_, content| content.present? }
+ .map { |tpj| [tpj, params["piece_justificative_#{tpj.id}"]] }
+ .select { |_, content| content.present? }
without_virus, with_virus = tpj_contents
- .partition { |_, content| ClamavService.safe_file?(content.path) }
+ .partition { |_, content| ClamavService.safe_file?(content.path) }
errors = with_virus
- .map { |_, content| content.original_filename + ' : virus détecté' }
+ .map { |_, content| "#{content.original_filename} : virus détecté" }
errors += without_virus
- .map { |tpj, content| save_pj(content, dossier, tpj, user) }
- .compact()
+ .map { |tpj, content| save_pj(content, dossier, tpj, user) }
+ .compact()
end
def self.upload_one! dossier, user, params
content = params[:piece_justificative][:content]
if ClamavService.safe_file? content.path
pj = PieceJustificative.new(content: content,
- dossier: dossier,
- type_de_piece_justificative: nil,
- user: user)
+ dossier: dossier,
+ type_de_piece_justificative: nil,
+ user: user)
pj.save
else
pj = PieceJustificative.new
- pj.errors.add(:content, content.original_filename + ': Virus détecté !!')
+ pj.errors.add(:content, "#{content.original_filename} : Virus détecté !!")
end
pj
@@ -34,9 +34,9 @@ class PiecesJustificativesService
def self.save_pj(content, dossier, tpj, user)
pj = PieceJustificative.new(content: content,
- dossier: dossier,
- type_de_piece_justificative: tpj,
- user: user)
+ dossier: dossier,
+ type_de_piece_justificative: tpj,
+ user: user)
pj.save ? nil : "le fichier #{content.original_filename} (#{pj.libelle.truncate(200)}) n'a pas pu être sauvegardé"
end
diff --git a/app/services/render_partial_service.rb b/app/services/render_partial_service.rb
index c45a9197f..5d37024ea 100644
--- a/app/services/render_partial_service.rb
+++ b/app/services/render_partial_service.rb
@@ -17,7 +17,7 @@ class RenderPartialService
def self.left_panel_exist? left_panel_url
file = left_panel_url.split('/').last
- File.exist?(Rails.root.join('app','views', 'layouts', 'left_panels', '_' + file + '.html.haml'))
+ File.exist?(Rails.root.join('app','views', 'layouts', 'left_panels', "_#{file}.html.haml"))
end
private
@@ -31,6 +31,6 @@ class RenderPartialService
end
def retrieve_name
- controller.to_s.parameterize.underscore + '_' + method.to_s
+ "#{controller.to_s.parameterize.underscore}_#{method.to_s}"
end
end
diff --git a/app/services/sync_credentials_service.rb b/app/services/sync_credentials_service.rb
index 43c556c98..7ae2dcad2 100644
--- a/app/services/sync_credentials_service.rb
+++ b/app/services/sync_credentials_service.rb
@@ -9,28 +9,22 @@ class SyncCredentialsService
def change_credentials!
if @klass != User
user = User.find_by(email: @email_was)
- if user
- return false if !user.update_columns(
- email: @email,
- encrypted_password: @encrypted_password)
+ if user && !user.update_columns(email: @email, encrypted_password: @encrypted_password)
+ return false
end
end
if @klass != Gestionnaire
gestionnaire = Gestionnaire.find_by(email: @email_was)
- if gestionnaire
- return false if !gestionnaire.update_columns(
- email: @email,
- encrypted_password: @encrypted_password)
+ if gestionnaire && !gestionnaire.update_columns(email: @email, encrypted_password: @encrypted_password)
+ return false
end
end
if @klass != Administrateur
administrateur = Administrateur.find_by(email: @email_was)
- if administrateur
- return false if !administrateur.update_columns(
- email: @email,
- encrypted_password: @encrypted_password)
+ if administrateur && !administrateur.update_columns(email: @email, encrypted_password: @encrypted_password)
+ return false
end
end
diff --git a/app/services/types_de_champ_service.rb b/app/services/types_de_champ_service.rb
index 7dcf3adb4..a2e523007 100644
--- a/app/services/types_de_champ_service.rb
+++ b/app/services/types_de_champ_service.rb
@@ -5,9 +5,17 @@ class TypesDeChampService
params_with_ordered_champs = order_champs(params, attributes)
parameters = params_with_ordered_champs
- .require(:procedure)
- .permit("#{attributes}" => [:libelle, :description, :order_place, :type_champ, :id, :mandatory, :type,
- drop_down_list_attributes: [:value, :id]])
+ .require(:procedure)
+ .permit("#{attributes}" => [
+ :libelle,
+ :description,
+ :order_place,
+ :type_champ,
+ :id,
+ :mandatory,
+ :type,
+ drop_down_list_attributes: [:value, :id]
+ ])
parameters[attributes].each do |param_first, param_second|
if param_second[:libelle].empty?
diff --git a/app/uploaders/piece_justificative_uploader.rb b/app/uploaders/piece_justificative_uploader.rb
index dddab178c..22e44268f 100644
--- a/app/uploaders/piece_justificative_uploader.rb
+++ b/app/uploaders/piece_justificative_uploader.rb
@@ -26,7 +26,7 @@ class PieceJustificativeUploader < BaseUploader
if original_filename.present? || model.content_secure_token
if Features.remote_storage
filename = "#{model.class.to_s.underscore}-#{secure_token}.#{file.extension.downcase}"
- else original_filename
+ else
filename = "#{model.class.to_s.underscore}.#{file.extension.downcase}"
end
end
diff --git a/app/views/administrateurs/activate/new.html.haml b/app/views/administrateurs/activate/new.html.haml
new file mode 100644
index 000000000..256159867
--- /dev/null
+++ b/app/views/administrateurs/activate/new.html.haml
@@ -0,0 +1,8 @@
+.container
+ = form_for @administrateur, url: { controller: 'administrateurs/activate', action: :create }, html: { class: "form" } do |f|
+ %br
+ %h1
+ = @administrateur.email
+ = f.password_field :password, placeholder: 'Mot de passe'
+ = f.hidden_field :reset_password_token, value: params[:token]
+ = f.submit 'Définir le mot de passe', class: 'button large primary expand'
diff --git a/app/views/administration_mailer/invite_admin.html.haml b/app/views/administration_mailer/invite_admin.html.haml
new file mode 100644
index 000000000..6693ae419
--- /dev/null
+++ b/app/views/administration_mailer/invite_admin.html.haml
@@ -0,0 +1,16 @@
+- content_for(:title, 'Activation du compte administrateur')
+
+Bonjour,
+%br
+%br
+L'équipe TPS vous invite à activer votre compte administrateur sur TPS.
+%br
+%br
+Pour le faire, merci de cliquer sur le lien suivant :
+= link_to admin_activate_url(token: @reset_password_token), admin_activate_url(token: @reset_password_token)
+%br
+%br
+Bonne journée,
+%br
+%br
+L'équipe Téléprocédures Simplifiées
diff --git a/app/views/administrations/_list.html.haml b/app/views/administrations/_list.html.haml
index c5559f651..e17abfa15 100644
--- a/app/views/administrations/_list.html.haml
+++ b/app/views/administrations/_list.html.haml
@@ -4,6 +4,7 @@
%thead
%th.col-xs-4= smart_listing.sortable 'Email', :email
%th.col-xs-4= smart_listing.sortable 'Date de dernière connexion', :last_sign_in_at
+ %th.col-xs-2 État
%th.col-xs-2 Procédure active
%th.col-xs-2 Dossier en cours
@@ -17,6 +18,11 @@
(
= admin.last_sign_in_at.localtime.strftime('%d/%m/%Y')
)
+ %td
+ - if admin.invitation_expired?
+ = link_to admin.registration_state, administration_path(admin), remote: true, method: :patch
+ - else
+ = admin.registration_state
%td
= admin.procedures.publiees.count
%td
diff --git a/app/views/administrations/index.html.haml b/app/views/administrations/index.html.haml
index 869242426..730a7b487 100644
--- a/app/views/administrations/index.html.haml
+++ b/app/views/administrations/index.html.haml
@@ -3,7 +3,6 @@
= form_for @admin, url: { controller: 'administrations', action: :create } do |f|
.form-group.form-inline.text-center
= f.text_field :email, placeholder: :email, class: 'form-control'
- = f.text_field :password, placeholder: :password, class: 'form-control'
= f.submit 'Créer un administrateur', class: 'btn btn-success', id: 'submit_new_administrateur'
diff --git a/config/brakeman.ignore b/config/brakeman.ignore
new file mode 100644
index 000000000..a8ca1ae00
--- /dev/null
+++ b/config/brakeman.ignore
@@ -0,0 +1,26 @@
+{
+ "ignored_warnings": [
+ {
+ "warning_type": "Redirect",
+ "warning_code": 18,
+ "fingerprint": "a0a4cede6d50308b90bd747efd0a2ebd58947fbd5d100349ccd640c60413b1a9",
+ "check_name": "Redirect",
+ "message": "Possible unprotected redirect",
+ "file": "app/controllers/france_connect/particulier_controller.rb",
+ "line": 3,
+ "link": "http://brakemanscanner.org/docs/warning_types/redirect/",
+ "code": "redirect_to(FranceConnectParticulierClient.new.authorization_uri)",
+ "render_path": null,
+ "location": {
+ "type": "method",
+ "class": "FranceConnect::ParticulierController",
+ "method": "login"
+ },
+ "user_input": "FranceConnectParticulierClient.new.authorization_uri",
+ "confidence": "High",
+ "note": "We trust FC OpenId implem"
+ }
+ ],
+ "updated": "2018-01-11 15:53:22 +0100",
+ "brakeman_version": "3.7.0"
+}
diff --git a/config/deploy.rb b/config/deploy.rb
index 00ae5579b..f5b8304cd 100644
--- a/config/deploy.rb
+++ b/config/deploy.rb
@@ -45,30 +45,30 @@ set :rails_env, ENV["to"]
# Manually create these paths in shared/ (eg: shared/config/database.yml) in your server.
# They will be linked in the 'deploy:link_shared_paths' step.
set :shared_paths, [
- 'log',
- 'bin',
- 'uploads',
- 'tmp/pids',
- 'tmp/cache',
- 'tmp/sockets',
- 'public/system',
- 'public/uploads',
- 'config/database.yml',
- "config/skylight.yml",
- "config/fog_credentials.yml",
- 'config/initializers/secret_token.rb',
- 'config/initializers/features.yml',
- "config/environments/#{rails_env}.rb",
- "config/initializers/token.rb",
- "config/initializers/urls.rb",
- "config/initializers/super_admin.rb",
- "config/unicorn.rb",
- "config/initializers/raven.rb",
- 'config/france_connect.yml',
- 'config/github_secrets.yml',
- 'config/initializers/mailjet.rb',
- 'config/initializers/storage_url.rb'
- ]
+ 'log',
+ 'bin',
+ 'uploads',
+ 'tmp/pids',
+ 'tmp/cache',
+ 'tmp/sockets',
+ 'public/system',
+ 'public/uploads',
+ 'config/database.yml',
+ "config/skylight.yml",
+ "config/fog_credentials.yml",
+ 'config/initializers/secret_token.rb',
+ 'config/initializers/features.yml',
+ "config/environments/#{rails_env}.rb",
+ "config/initializers/token.rb",
+ "config/initializers/urls.rb",
+ "config/initializers/super_admin.rb",
+ "config/unicorn.rb",
+ "config/initializers/raven.rb",
+ 'config/france_connect.yml',
+ 'config/github_secrets.yml',
+ 'config/initializers/mailjet.rb',
+ 'config/initializers/storage_url.rb'
+]
set :rbenv_path, "/usr/local/rbenv/bin/rbenv"
diff --git a/config/initializers/apipie.rb b/config/initializers/apipie.rb
index 383abc409..362020851 100644
--- a/config/initializers/apipie.rb
+++ b/config/initializers/apipie.rb
@@ -10,8 +10,8 @@ Apipie.configure do |config|
config.namespaced_resources = true
config.show_all_examples = true
- config.app_info = <<-EOS
-Description
+ config.app_info = <<~EOS
+ Description
EOS
end
diff --git a/config/initializers/browser.rb b/config/initializers/browser.rb
index 1c850f41e..950d9536c 100644
--- a/config/initializers/browser.rb
+++ b/config/initializers/browser.rb
@@ -1,3 +1,3 @@
BROWSER = Hashie::Mash.new ({
- value: nil
- })
+ value: nil
+})
diff --git a/config/initializers/clamav.rb b/config/initializers/clamav.rb
index 24122c84a..758359382 100644
--- a/config/initializers/clamav.rb
+++ b/config/initializers/clamav.rb
@@ -1,4 +1,4 @@
CLAMAV = Hashie::Mash.new ({
- mock?: true,
- response: true
- })
+ mock?: true,
+ response: true
+})
diff --git a/config/initializers/features.rb b/config/initializers/features.rb
index 286132103..761494df0 100644
--- a/config/initializers/features.rb
+++ b/config/initializers/features.rb
@@ -8,8 +8,8 @@ require 'yaml'
# ansible config
class Features
class << self
- if File.exist?(File.dirname(__FILE__) + '/features.yml')
- features_map = YAML.load_file(File.dirname(__FILE__) + '/features.yml')
+ if File.exist?("#{File.dirname(__FILE__)}/features.yml")
+ features_map = YAML.load_file("#{File.dirname(__FILE__)}/features.yml")
if features_map
features_map.each do |feature, is_active|
define_method("#{feature}") do
diff --git a/config/initializers/france_connect.rb b/config/initializers/france_connect.rb
index c9e9d11cf..a3702335b 100644
--- a/config/initializers/france_connect.rb
+++ b/config/initializers/france_connect.rb
@@ -1,14 +1,22 @@
-FRANCE_CONNECT = if !Rails.env.test?
- file_path = "#{Rails.root}/config/france_connect.yml"
- Hashie::Mash.load(file_path)
+FRANCE_CONNECT = if Rails.env.test?
+ {
+ particulier: {
+ identifier: 'plop',
+ secret: 'plip',
+ redirect_uri: 'https://bidon.com/endpoint',
+ authorization_endpoint: 'https://bidon.com/endpoint',
+ token_endpoint: 'https://bidon.com/endpoint',
+ userinfo_endpoint: 'https://bidon.com/endpoint',
+ logout_endpoint: 'https://bidon.com/endpoint',
+ }
+ }
else
- Hashie::Mash.new({
- particulier_identifier: 'plop',
- particulier_secret: 'plip',
- particulier_redirect_uri: 'https://bidon.com/endpoint',
- particulier_authorization_endpoint: 'https://bidon.com/endpoint',
- particulier_token_endpoint: 'https://bidon.com/endpoint',
- particulier_userinfo_endpoint: 'https://bidon.com/endpoint',
- particulier_logout_endpoint: 'https://bidon.com/endpoint',
- })
+ fc_config_file_path = "#{Rails.root}/config/france_connect.yml"
+
+ # FIXME: with a yaml with a { particulier: {} } structure
+ config_hash = YAML.safe_load(File.read(fc_config_file_path))
+ .reduce({}) { |acc, (key, value)| acc[key.gsub('particulier_', '')] = value; acc }
+ .symbolize_keys
+
+ { particulier: config_hash }
end
diff --git a/config/initializers/storage_url.rb b/config/initializers/storage_url.rb
index 65165ab2e..d89d1bc83 100644
--- a/config/initializers/storage_url.rb
+++ b/config/initializers/storage_url.rb
@@ -1 +1 @@
-STORAGE_URL = "https://storage.apientreprise.fr/" + CarrierWave::Uploader::Base.fog_directory + '/'
+STORAGE_URL = "https://storage.apientreprise.fr/#{CarrierWave::Uploader::Base.fog_directory}/"
diff --git a/config/routes.rb b/config/routes.rb
index 081231cb3..e28361914 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -18,19 +18,19 @@ Rails.application.routes.draw do
}
devise_for :administrateurs, controllers: {
- sessions: 'administrateurs/sessions'
- }, skip: [:password, :registrations]
+ sessions: 'administrateurs/sessions'
+ }, skip: [:password, :registrations]
devise_for :gestionnaires, controllers: {
- sessions: 'gestionnaires/sessions',
- passwords: 'gestionnaires/passwords'
- }, skip: [:registrations]
+ sessions: 'gestionnaires/sessions',
+ passwords: 'gestionnaires/passwords'
+ }, skip: [:registrations]
devise_for :users, controllers: {
- sessions: 'users/sessions',
- registrations: 'users/registrations',
- passwords: 'users/passwords'
- }
+ sessions: 'users/sessions',
+ registrations: 'users/registrations',
+ passwords: 'users/passwords'
+ }
devise_scope :user do
get '/users/sign_in/demo' => redirect("/users/sign_in")
@@ -55,8 +55,7 @@ Rails.application.routes.draw do
get 'administrations/sign_in' => 'administrations/sessions#new'
delete 'administrations/sign_out' => 'administrations/sessions#destroy'
authenticate :administration do
- resources :administrations, only: [:index, :create]
- namespace :administrations do
+ resources :administrations, only: [:index, :create, :update] do
match "/delayed_job" => DelayedJobWeb, :anchor => false, :via => [:get, :post]
end
end
@@ -111,6 +110,8 @@ Rails.application.routes.draw do
end
namespace :admin do
+ get 'activate' => '/administrateurs/activate#new'
+ patch 'activate' => '/administrateurs/activate#create'
get 'sign_in' => '/administrateurs/sessions#new'
get 'procedures/archived' => 'procedures#archived'
get 'procedures/draft' => 'procedures#draft'
@@ -171,7 +172,7 @@ Rails.application.routes.draw do
end
namespace :accompagnateurs do
- get 'show' #delete after fixed tests admin/accompagnateurs/show_spec without this line
+ get 'show' # delete after fixed tests admin/accompagnateurs/show_spec without this line
end
resources :gestionnaires, only: [:index, :create, :destroy]
diff --git a/db/migrate/20160120094750_create_france_connect_information.rb b/db/migrate/20160120094750_create_france_connect_information.rb
index 9e16a3343..88f7f1128 100644
--- a/db/migrate/20160120094750_create_france_connect_information.rb
+++ b/db/migrate/20160120094750_create_france_connect_information.rb
@@ -18,13 +18,15 @@ class CreateFranceConnectInformation < ActiveRecord::Migration
add_reference :france_connect_informations, :user, references: :users
User.all.each do |user|
- FranceConnectInformation.create({gender: user.gender,
- given_name: user.given_name,
- family_name: user.family_name,
- birthdate: user.birthdate,
- birthplace: user.birthplace,
- france_connect_particulier_id: user.france_connect_particulier_id,
- user_id: user.id}) if user.france_connect_particulier_id.present?
+ FranceConnectInformation.create({
+ gender: user.gender,
+ given_name: user.given_name,
+ family_name: user.family_name,
+ birthdate: user.birthdate,
+ birthplace: user.birthplace,
+ france_connect_particulier_id: user.france_connect_particulier_id,
+ user_id: user.id
+ }) if user.france_connect_particulier_id.present?
end
remove_column :users, :gender
@@ -44,12 +46,14 @@ class CreateFranceConnectInformation < ActiveRecord::Migration
add_column :users, :france_connect_particulier_id, :string
FranceConnectInformation.all.each do |fci|
- User.find(fci.user_id).update_attributes({gender: fci.gender,
- given_name: fci.given_name,
- family_name: fci.family_name,
- birthdate: fci.birthdate,
- birthplace: fci.birthplace,
- france_connect_particulier_id: fci.france_connect_particulier_id})
+ User.find(fci.user_id).update_attributes({
+ gender: fci.gender,
+ given_name: fci.given_name,
+ family_name: fci.family_name,
+ birthdate: fci.birthdate,
+ birthplace: fci.birthplace,
+ france_connect_particulier_id: fci.france_connect_particulier_id
+ })
end
drop_table :france_connect_informations
diff --git a/db/migrate/20160609145737_delete_default_description_to_dossier.rb b/db/migrate/20160609145737_delete_default_description_to_dossier.rb
index 8ba2fc7d9..feca43f92 100644
--- a/db/migrate/20160609145737_delete_default_description_to_dossier.rb
+++ b/db/migrate/20160609145737_delete_default_description_to_dossier.rb
@@ -13,21 +13,21 @@ class DeleteDefaultDescriptionToDossier < ActiveRecord::Migration
def up
Procedure.all.each do |procedure|
- #change all type_de_champ place_order by +1 to insert new type_de_champ description on first place
+ # change all type_de_champ place_order by +1 to insert new type_de_champ description on first place
TypeDeChamp.where(procedure_id: procedure.id).each do |type_de_champ|
type_de_champ.order_place += 1
type_de_champ.save
end
- #insert type_de_champ description on first place
+ # insert type_de_champ description on first place
TypeDeChamp.create(libelle: 'Description', description: 'Description de votre demande', type_champ: 'textarea', order_place: 0, procedure_id: procedure.id, mandatory: true)
end
Dossier.all.each do |dossier|
- #get the new type de champ
+ # get the new type de champ
new_type_de_champ = TypeDeChamp.where(libelle: 'Description', type_champ: 'textarea', order_place: 0, procedure_id: dossier.procedure_id, mandatory: true)
- #create a new champ with the actual description value
+ # create a new champ with the actual description value
Champ.create(value: dossier.description, type_de_champ_id: new_type_de_champ.first.id, dossier_id: dossier.id)
end
diff --git a/db/migrate/20160802113112_build_default_preference_list_dossier.rb b/db/migrate/20160802113112_build_default_preference_list_dossier.rb
index 2a11ea8f0..d4b211d69 100644
--- a/db/migrate/20160802113112_build_default_preference_list_dossier.rb
+++ b/db/migrate/20160802113112_build_default_preference_list_dossier.rb
@@ -5,14 +5,14 @@ class BuildDefaultPreferenceListDossier < ActiveRecord::Migration
table.second.each do |column|
if valid_couple_table_attr? table.first, column.first
PreferenceListDossier.create(
- libelle: column.second[:libelle],
- table: column.second[:table],
- attr: column.second[:attr],
- attr_decorate: column.second[:attr_decorate],
- bootstrap_lg: column.second[:bootstrap_lg],
- order: nil,
- filter: nil,
- gestionnaire_id: self.id
+ libelle: column.second[:libelle],
+ table: column.second[:table],
+ attr: column.second[:attr],
+ attr_decorate: column.second[:attr_decorate],
+ bootstrap_lg: column.second[:bootstrap_lg],
+ order: nil,
+ filter: nil,
+ gestionnaire_id: self.id
)
end
end
@@ -20,22 +20,28 @@ class BuildDefaultPreferenceListDossier < ActiveRecord::Migration
end
def valid_couple_table_attr? table, column
- couples = [{
- table: :dossier,
- column: :dossier_id
- }, {
- table: :procedure,
- column: :libelle
- }, {
- table: :etablissement,
- column: :siret
- }, {
- table: :entreprise,
- column: :raison_sociale
- }, {
- table: :dossier,
- column: :state
- }]
+ couples = [
+ {
+ table: :dossier,
+ column: :dossier_id
+ },
+ {
+ table: :procedure,
+ column: :libelle
+ },
+ {
+ table: :etablissement,
+ column: :siret
+ },
+ {
+ table: :entreprise,
+ column: :raison_sociale
+ },
+ {
+ table: :dossier,
+ column: :state
+ }
+ ]
couples.include?({table: table, column: column})
end
@@ -44,11 +50,11 @@ class BuildDefaultPreferenceListDossier < ActiveRecord::Migration
class PreferenceListDossier < ActiveRecord::Base
def self.available_columns
{
- dossier: columns_dossier,
- procedure: columns_procedure,
- entreprise: columns_entreprise,
- etablissement: columns_etablissement,
- user: columns_user
+ dossier: columns_dossier,
+ procedure: columns_procedure,
+ entreprise: columns_entreprise,
+ etablissement: columns_etablissement,
+ user: columns_user
}
end
@@ -56,10 +62,10 @@ class BuildDefaultPreferenceListDossier < ActiveRecord::Migration
table = nil
{
- dossier_id: create_column('ID', table, 'id', 'id', 1),
- created_at: create_column('Créé le', table, 'created_at', 'first_creation', 2),
- updated_at: create_column('Mise à jour le', table, 'updated_at', 'last_update', 2),
- state: create_column('Statut', table, 'state', 'display_state', 1)
+ dossier_id: create_column('ID', table, 'id', 'id', 1),
+ created_at: create_column('Créé le', table, 'created_at', 'first_creation', 2),
+ updated_at: create_column('Mise à jour le', table, 'updated_at', 'last_update', 2),
+ state: create_column('Statut', table, 'state', 'display_state', 1)
}
end
@@ -67,9 +73,9 @@ class BuildDefaultPreferenceListDossier < ActiveRecord::Migration
table = 'procedure'
{
- libelle: create_column('Libellé procédure', table, 'libelle', 'libelle', 4),
- organisation: create_column('Organisation', table, 'organisation', 'organisation', 3),
- direction: create_column('Direction', table, 'direction', 'direction', 3)
+ libelle: create_column('Libellé procédure', table, 'libelle', 'libelle', 4),
+ organisation: create_column('Organisation', table, 'organisation', 'organisation', 3),
+ direction: create_column('Direction', table, 'direction', 'direction', 3)
}
end
@@ -77,12 +83,12 @@ class BuildDefaultPreferenceListDossier < ActiveRecord::Migration
table = 'entreprise'
{
- siren: create_column('SIREN', table, 'siren', 'siren', 2),
- forme_juridique: create_column('Forme juridique', table, 'forme_juridique', 'forme_juridique', 3),
- nom_commercial: create_column('Nom commercial', table, 'nom_commercial', 'nom_commercial', 3),
- raison_sociale: create_column('Raison sociale', table, 'raison_sociale', 'raison_sociale', 3),
- siret_siege_social: create_column('SIRET siège social', table, 'siret_siege_social', 'siret_siege_social', 2),
- date_creation: create_column('Date de création', table, 'date_creation', 'date_creation', 2),
+ siren: create_column('SIREN', table, 'siren', 'siren', 2),
+ forme_juridique: create_column('Forme juridique', table, 'forme_juridique', 'forme_juridique', 3),
+ nom_commercial: create_column('Nom commercial', table, 'nom_commercial', 'nom_commercial', 3),
+ raison_sociale: create_column('Raison sociale', table, 'raison_sociale', 'raison_sociale', 3),
+ siret_siege_social: create_column('SIRET siège social', table, 'siret_siege_social', 'siret_siege_social', 2),
+ date_creation: create_column('Date de création', table, 'date_creation', 'date_creation', 2),
}
end
@@ -90,9 +96,9 @@ class BuildDefaultPreferenceListDossier < ActiveRecord::Migration
table = 'etablissement'
{
- siret: create_column('SIRET', table, 'siret', 'siret', 2),
- libelle: create_column('Nom établissement', table, 'libelle_naf', 'libelle_naf', 3),
- code_postal: create_column('Code postal', table, 'code_postal', 'code_postal', 1)
+ siret: create_column('SIRET', table, 'siret', 'siret', 2),
+ libelle: create_column('Nom établissement', table, 'libelle_naf', 'libelle_naf', 3),
+ code_postal: create_column('Code postal', table, 'code_postal', 'code_postal', 1)
}
end
@@ -100,19 +106,19 @@ class BuildDefaultPreferenceListDossier < ActiveRecord::Migration
table = 'user'
{
- email: create_column('Email', table, 'email', 'email', 2)
+ email: create_column('Email', table, 'email', 'email', 2)
}
end
def self.create_column libelle, table, attr, attr_decorate, bootstrap_lg
{
- libelle: libelle,
- table: table,
- attr: attr,
- attr_decorate: attr_decorate,
- bootstrap_lg: bootstrap_lg,
- order: nil,
- filter: nil
+ libelle: libelle,
+ table: table,
+ attr: attr,
+ attr_decorate: attr_decorate,
+ bootstrap_lg: bootstrap_lg,
+ order: nil,
+ filter: nil
}
end
end
diff --git a/db/migrate/20161007095443_reset_all_preference_list_dossier.rb b/db/migrate/20161007095443_reset_all_preference_list_dossier.rb
index 137cf286b..9aab6967c 100644
--- a/db/migrate/20161007095443_reset_all_preference_list_dossier.rb
+++ b/db/migrate/20161007095443_reset_all_preference_list_dossier.rb
@@ -5,12 +5,12 @@ class ResetAllPreferenceListDossier < ActiveRecord::Migration
def self.available_columns_for procedure_id = nil
columns = {
- dossier: columns_dossier,
- procedure: columns_procedure,
- entreprise: columns_entreprise,
- etablissement: columns_etablissement,
- user: columns_user,
- france_connect: columns_france_connect
+ dossier: columns_dossier,
+ procedure: columns_procedure,
+ entreprise: columns_entreprise,
+ etablissement: columns_etablissement,
+ user: columns_user,
+ france_connect: columns_france_connect
}
columns
end
@@ -21,10 +21,10 @@ class ResetAllPreferenceListDossier < ActiveRecord::Migration
table = nil
{
- dossier_id: create_column('ID', table, 'id', 'id', 1),
- created_at: create_column('Créé le', table, 'created_at', 'first_creation', 2),
- updated_at: create_column('Mise à jour le', table, 'updated_at', 'last_update', 2),
- state: create_column('Statut', table, 'state', 'display_state', 1)
+ dossier_id: create_column('ID', table, 'id', 'id', 1),
+ created_at: create_column('Créé le', table, 'created_at', 'first_creation', 2),
+ updated_at: create_column('Mise à jour le', table, 'updated_at', 'last_update', 2),
+ state: create_column('Statut', table, 'state', 'display_state', 1)
}
end
@@ -32,9 +32,9 @@ class ResetAllPreferenceListDossier < ActiveRecord::Migration
table = 'procedure'
{
- libelle: create_column('Libellé procédure', table, 'libelle', 'libelle', 4),
- organisation: create_column('Organisation', table, 'organisation', 'organisation', 3),
- direction: create_column('Direction', table, 'direction', 'direction', 3)
+ libelle: create_column('Libellé procédure', table, 'libelle', 'libelle', 4),
+ organisation: create_column('Organisation', table, 'organisation', 'organisation', 3),
+ direction: create_column('Direction', table, 'direction', 'direction', 3)
}
end
@@ -42,12 +42,12 @@ class ResetAllPreferenceListDossier < ActiveRecord::Migration
table = 'entreprise'
{
- siren: create_column('SIREN', table, 'siren', 'siren', 2),
- forme_juridique: create_column('Forme juridique', table, 'forme_juridique', 'forme_juridique', 3),
- nom_commercial: create_column('Nom commercial', table, 'nom_commercial', 'nom_commercial', 3),
- raison_sociale: create_column('Raison sociale', table, 'raison_sociale', 'raison_sociale', 3),
- siret_siege_social: create_column('SIRET siège social', table, 'siret_siege_social', 'siret_siege_social', 2),
- date_creation: create_column('Date de création', table, 'date_creation', 'date_creation', 2),
+ siren: create_column('SIREN', table, 'siren', 'siren', 2),
+ forme_juridique: create_column('Forme juridique', table, 'forme_juridique', 'forme_juridique', 3),
+ nom_commercial: create_column('Nom commercial', table, 'nom_commercial', 'nom_commercial', 3),
+ raison_sociale: create_column('Raison sociale', table, 'raison_sociale', 'raison_sociale', 3),
+ siret_siege_social: create_column('SIRET siège social', table, 'siret_siege_social', 'siret_siege_social', 2),
+ date_creation: create_column('Date de création', table, 'date_creation', 'date_creation', 2),
}
end
@@ -55,16 +55,16 @@ class ResetAllPreferenceListDossier < ActiveRecord::Migration
table = 'etablissement'
{
- siret: create_column('SIRET', table, 'siret', 'siret', 2),
- libelle: create_column('Nom établissement', table, 'libelle_naf', 'libelle_naf', 3),
- code_postal: create_column('Code postal', table, 'code_postal', 'code_postal', 1)
+ siret: create_column('SIRET', table, 'siret', 'siret', 2),
+ libelle: create_column('Nom établissement', table, 'libelle_naf', 'libelle_naf', 3),
+ code_postal: create_column('Code postal', table, 'code_postal', 'code_postal', 1)
}
end
def self.columns_user
table = 'user'
{
- email: create_column('Email', table, 'email', 'email', 2)
+ email: create_column('Email', table, 'email', 'email', 2)
}
end
@@ -72,21 +72,21 @@ class ResetAllPreferenceListDossier < ActiveRecord::Migration
table = 'france_connect_information'
{
- gender: create_column('Civilité (FC)', table, 'gender', 'gender_fr', 1),
- given_name: create_column('Prénom (FC)', table, 'given_name', 'given_name', 2),
- family_name: create_column('Nom (FC)', table, 'family_name', 'family_name', 2)
+ gender: create_column('Civilité (FC)', table, 'gender', 'gender_fr', 1),
+ given_name: create_column('Prénom (FC)', table, 'given_name', 'given_name', 2),
+ family_name: create_column('Nom (FC)', table, 'family_name', 'family_name', 2)
}
end
def self.create_column libelle, table, attr, attr_decorate, bootstrap_lg
{
- libelle: libelle,
- table: table,
- attr: attr,
- attr_decorate: attr_decorate,
- bootstrap_lg: bootstrap_lg,
- order: nil,
- filter: nil
+ libelle: libelle,
+ table: table,
+ attr: attr,
+ attr_decorate: attr_decorate,
+ bootstrap_lg: bootstrap_lg,
+ order: nil,
+ filter: nil
}
end
end
@@ -100,15 +100,15 @@ class ResetAllPreferenceListDossier < ActiveRecord::Migration
table.second.each do |column|
if valid_couple_table_attr? table.first, column.first
PreferenceListDossier.create(
- libelle: column.second[:libelle],
- table: column.second[:table],
- attr: column.second[:attr],
- attr_decorate: column.second[:attr_decorate],
- bootstrap_lg: column.second[:bootstrap_lg],
- order: nil,
- filter: nil,
- procedure_id: procedure_id,
- gestionnaire: self
+ libelle: column.second[:libelle],
+ table: column.second[:table],
+ attr: column.second[:attr],
+ attr_decorate: column.second[:attr_decorate],
+ bootstrap_lg: column.second[:bootstrap_lg],
+ order: nil,
+ filter: nil,
+ procedure_id: procedure_id,
+ gestionnaire: self
)
end
end
@@ -118,22 +118,28 @@ class ResetAllPreferenceListDossier < ActiveRecord::Migration
private
def valid_couple_table_attr? table, column
- couples = [{
- table: :dossier,
- column: :dossier_id
- }, {
- table: :procedure,
- column: :libelle
- }, {
- table: :etablissement,
- column: :siret
- }, {
- table: :entreprise,
- column: :raison_sociale
- }, {
- table: :dossier,
- column: :state
- }]
+ couples = [
+ {
+ table: :dossier,
+ column: :dossier_id
+ },
+ {
+ table: :procedure,
+ column: :libelle
+ },
+ {
+ table: :etablissement,
+ column: :siret
+ },
+ {
+ table: :entreprise,
+ column: :raison_sociale
+ },
+ {
+ table: :dossier,
+ column: :state
+ }
+ ]
couples.include?({table: table, column: column})
end
diff --git a/db/migrate/20170215102943_remove_duplicate_email_received.rb b/db/migrate/20170215102943_remove_duplicate_email_received.rb
index 907762e04..e69945626 100644
--- a/db/migrate/20170215102943_remove_duplicate_email_received.rb
+++ b/db/migrate/20170215102943_remove_duplicate_email_received.rb
@@ -1,11 +1,11 @@
class RemoveDuplicateEmailReceived < ActiveRecord::Migration[5.0]
def change
all_mails = MailReceived.all
- groupped = all_mails.group_by { |m| m.procedure_id }
- filtered = groupped.reject { |k, v| v.length < 2 }
- filtered.each do |k, duplicate_mails|
- duplicate_mails.pop
- duplicate_mails.each(&:destroy)
- end
+ groupped = all_mails.group_by { |m| m.procedure_id }
+ filtered = groupped.reject { |k, v| v.length < 2 }
+ filtered.each do |k, duplicate_mails|
+ duplicate_mails.pop
+ duplicate_mails.each(&:destroy)
+ end
end
end
diff --git a/db/migrate/20180104150513_add_active_to_administrateurs.rb b/db/migrate/20180104150513_add_active_to_administrateurs.rb
new file mode 100644
index 000000000..5de20b1f3
--- /dev/null
+++ b/db/migrate/20180104150513_add_active_to_administrateurs.rb
@@ -0,0 +1,5 @@
+class AddActiveToAdministrateurs < ActiveRecord::Migration[5.0]
+ def change
+ add_column :administrateurs, :active, :boolean, default: false
+ end
+end
diff --git a/db/migrate/20180111153245_drop_preference_devise_profils.rb b/db/migrate/20180111153245_drop_preference_devise_profils.rb
new file mode 100644
index 000000000..c8c53cc1b
--- /dev/null
+++ b/db/migrate/20180111153245_drop_preference_devise_profils.rb
@@ -0,0 +1,5 @@
+class DropPreferenceDeviseProfils < ActiveRecord::Migration[5.0]
+ def change
+ drop_table :preference_devise_profils
+ end
+end
diff --git a/db/migrate/20180111153257_drop_preference_list_dossiers.rb b/db/migrate/20180111153257_drop_preference_list_dossiers.rb
new file mode 100644
index 000000000..91b65374e
--- /dev/null
+++ b/db/migrate/20180111153257_drop_preference_list_dossiers.rb
@@ -0,0 +1,5 @@
+class DropPreferenceListDossiers < ActiveRecord::Migration[5.0]
+ def change
+ drop_table :preference_list_dossiers
+ end
+end
diff --git a/db/migrate/20180111153308_drop_preference_smart_listing_pages.rb b/db/migrate/20180111153308_drop_preference_smart_listing_pages.rb
new file mode 100644
index 000000000..fac3e1bc8
--- /dev/null
+++ b/db/migrate/20180111153308_drop_preference_smart_listing_pages.rb
@@ -0,0 +1,5 @@
+class DropPreferenceSmartListingPages < ActiveRecord::Migration[5.0]
+ def change
+ drop_table :preference_smart_listing_pages
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 1b15e08d0..ab3be6bdd 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,19 +10,19 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 20180108152958) do
+ActiveRecord::Schema.define(version: 20180111153308) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
enable_extension "unaccent"
create_table "administrateurs", force: :cascade do |t|
- t.string "email", default: "", null: false
- t.string "encrypted_password", default: "", null: false
+ t.string "email", default: "", null: false
+ t.string "encrypted_password", default: "", null: false
t.string "reset_password_token"
t.datetime "reset_password_sent_at"
t.datetime "remember_created_at"
- t.integer "sign_in_count", default: 0, null: false
+ t.integer "sign_in_count", default: 0, null: false
t.datetime "current_sign_in_at"
t.datetime "last_sign_in_at"
t.string "current_sign_in_ip"
@@ -30,6 +30,7 @@ ActiveRecord::Schema.define(version: 20180108152958) do
t.datetime "created_at"
t.datetime "updated_at"
t.string "api_token"
+ t.boolean "active", default: false
t.index ["email"], name: "index_administrateurs_on_email", unique: true, using: :btree
t.index ["reset_password_token"], name: "index_administrateurs_on_reset_password_token", unique: true, using: :btree
end
@@ -354,32 +355,6 @@ ActiveRecord::Schema.define(version: 20180108152958) do
t.index ["type_de_piece_justificative_id"], name: "index_pieces_justificatives_on_type_de_piece_justificative_id", using: :btree
end
- create_table "preference_devise_profils", force: :cascade do |t|
- t.string "last_current_devise_profil"
- t.integer "administrateurs_id"
- t.integer "gestionnaires_id"
- t.integer "users_id"
- end
-
- create_table "preference_list_dossiers", force: :cascade do |t|
- t.string "libelle"
- t.string "table"
- t.string "attr"
- t.string "attr_decorate"
- t.string "bootstrap_lg"
- t.string "order"
- t.string "filter"
- t.integer "gestionnaire_id"
- t.integer "procedure_id"
- end
-
- create_table "preference_smart_listing_pages", force: :cascade do |t|
- t.string "liste"
- t.integer "page"
- t.integer "procedure_id"
- t.integer "gestionnaire_id"
- end
-
create_table "procedure_paths", force: :cascade do |t|
t.string "path"
t.integer "procedure_id"
diff --git a/lib/tasks/2017_10_06_set_follow_date.rake b/lib/tasks/2017_10_06_set_follow_date.rake
index c40f3f2f4..4a7cae3db 100644
--- a/lib/tasks/2017_10_06_set_follow_date.rake
+++ b/lib/tasks/2017_10_06_set_follow_date.rake
@@ -23,7 +23,8 @@ namespace :'2017_10_06_set_follow_date' do
demande_seen_at: gestionnaire.current_sign_in_at,
annotations_privees_seen_at: gestionnaire.current_sign_in_at,
avis_seen_at: gestionnaire.current_sign_in_at,
- messagerie_seen_at: gestionnaire.current_sign_in_at)
+ messagerie_seen_at: gestionnaire.current_sign_in_at
+ )
end
end
diff --git a/lib/tasks/2018_01_11_add_active_state_to_administrators.rake b/lib/tasks/2018_01_11_add_active_state_to_administrators.rake
new file mode 100644
index 000000000..7de822e6c
--- /dev/null
+++ b/lib/tasks/2018_01_11_add_active_state_to_administrators.rake
@@ -0,0 +1,7 @@
+namespace :'2018_01_11_add_active_state_to_administrators' do
+ task set: :environment do
+ Administrateur.find_each do |administrateur|
+ administrateur.update_column(:active, true)
+ end
+ end
+end
diff --git a/lib/tasks/cloud_storage.rake b/lib/tasks/cloud_storage.rake
index 878d3acce..f4cfb11cf 100644
--- a/lib/tasks/cloud_storage.rake
+++ b/lib/tasks/cloud_storage.rake
@@ -2,15 +2,15 @@ namespace :cloudstorage do
task init: :environment do
os_config = (YAML.load_file(Fog.credentials_path))['default']
@os = OpenStack::Connection.create(
- {
- username: os_config['openstack_username'],
- api_key: os_config['openstack_api_key'],
- auth_method: "password",
- auth_url: "https://auth.cloud.ovh.net/v2.0/",
- authtenant_name: os_config['openstack_tenant'],
- service_type: "object-store",
- region: os_config['openstack_region']
- }
+ {
+ username: os_config['openstack_username'],
+ api_key: os_config['openstack_api_key'],
+ auth_method: "password",
+ auth_url: "https://auth.cloud.ovh.net/v2.0/",
+ authtenant_name: os_config['openstack_tenant'],
+ service_type: "object-store",
+ region: os_config['openstack_region']
+ }
)
@cont = @os.container(CarrierWave::Uploader::Base.fog_directory)
end
diff --git a/lib/tasks/dev.rake b/lib/tasks/dev.rake
index 8e8d48257..b363774b1 100644
--- a/lib/tasks/dev.rake
+++ b/lib/tasks/dev.rake
@@ -14,40 +14,37 @@ namespace :dev do
puts 'creating token.rb file'
res = `rake secret`.delete("\n")
file = File.new('config/initializers/token.rb', 'w+')
- comment = <
{
- '0' =>
- {
- libelle: libelle,
- description: description
- }
+ libelle: libelle,
+ description: description
}
+ }
}
end
diff --git a/spec/controllers/admin/procedures_controller_spec.rb b/spec/controllers/admin/procedures_controller_spec.rb
index 073f84b0f..cf1acb3e4 100644
--- a/spec/controllers/admin/procedures_controller_spec.rb
+++ b/spec/controllers/admin/procedures_controller_spec.rb
@@ -18,17 +18,17 @@ describe Admin::ProceduresController, type: :controller do
let(:procedure_params) {
{
- libelle: libelle,
- description: description,
- organisation: organisation,
- direction: direction,
- lien_demarche: lien_demarche,
- cerfa_flag: cerfa_flag,
- module_api_carto_attributes: {
- use_api_carto: use_api_carto,
- quartiers_prioritaires: quartiers_prioritaires,
- cadastre: cadastre
- }
+ libelle: libelle,
+ description: description,
+ organisation: organisation,
+ direction: direction,
+ lien_demarche: lien_demarche,
+ cerfa_flag: cerfa_flag,
+ module_api_carto_attributes: {
+ use_api_carto: use_api_carto,
+ quartiers_prioritaires: quartiers_prioritaires,
+ cadastre: cadastre
+ }
}
}
diff --git a/spec/controllers/admin/types_de_champ_controller_spec.rb b/spec/controllers/admin/types_de_champ_controller_spec.rb
index 270d125f9..3b68c6de6 100644
--- a/spec/controllers/admin/types_de_champ_controller_spec.rb
+++ b/spec/controllers/admin/types_de_champ_controller_spec.rb
@@ -41,27 +41,26 @@ describe Admin::TypesDeChampController, type: :controller do
let(:mandatory) { 'on' }
let(:procedure_params) do
- {types_de_champ_attributes:
- {'0' =>
- {
- libelle: libelle,
- type_champ: type_champ,
- description: description,
- order_place: order_place,
- id: types_de_champ_id,
- mandatory: mandatory
- },
- '1' =>
- {
- libelle: '',
- type_champ: 'text',
- description: '',
- order_place: '1',
- id: '',
- mandatory: false,
- type: 'TypeDeChampPublic'
- }
- }
+ {
+ types_de_champ_attributes: {
+ '0' => {
+ libelle: libelle,
+ type_champ: type_champ,
+ description: description,
+ order_place: order_place,
+ id: types_de_champ_id,
+ mandatory: mandatory
+ },
+ '1' => {
+ libelle: '',
+ type_champ: 'text',
+ description: '',
+ order_place: '1',
+ id: '',
+ mandatory: false,
+ type: 'TypeDeChampPublic'
+ }
+ }
}
end
diff --git a/spec/controllers/admin/types_de_champ_private_controller_spec.rb b/spec/controllers/admin/types_de_champ_private_controller_spec.rb
index 1dbb9c0b4..701bb2c91 100644
--- a/spec/controllers/admin/types_de_champ_private_controller_spec.rb
+++ b/spec/controllers/admin/types_de_champ_private_controller_spec.rb
@@ -41,28 +41,27 @@ describe Admin::TypesDeChampPrivateController, type: :controller do
let(:mandatory) { 'on' }
let(:procedure_params) do
- {types_de_champ_private_attributes:
- {'0' =>
- {
- libelle: libelle,
- type_champ: type_champ,
- description: description,
- order_place: order_place,
- id: types_de_champ_id,
- mandatory: mandatory,
- type: 'TypeDeChampPrivate'
- },
- '1' =>
- {
- libelle: '',
- type_champ: 'text',
- description: '',
- order_place: '1',
- id: '',
- mandatory: false,
- type: 'TypeDeChampPrivate'
- }
- }
+ {
+ types_de_champ_private_attributes: {
+ '0' => {
+ libelle: libelle,
+ type_champ: type_champ,
+ description: description,
+ order_place: order_place,
+ id: types_de_champ_id,
+ mandatory: mandatory,
+ type: 'TypeDeChampPrivate'
+ },
+ '1' => {
+ libelle: '',
+ type_champ: 'text',
+ description: '',
+ order_place: '1',
+ id: '',
+ mandatory: false,
+ type: 'TypeDeChampPrivate'
+ }
+ }
}
end
diff --git a/spec/controllers/administrations_controller_spec.rb b/spec/controllers/administrations_controller_spec.rb
index 48b2ba8dc..1ce833d1b 100644
--- a/spec/controllers/administrations_controller_spec.rb
+++ b/spec/controllers/administrations_controller_spec.rb
@@ -27,7 +27,7 @@ describe AdministrationsController, type: :controller do
sign_in administration
end
- subject { post :create, administrateur: {email: email, password: password} }
+ subject { post :create, administrateur: {email: email } }
context 'when email and password are correct' do
it 'add new administrateur in database' do
@@ -37,6 +37,8 @@ describe AdministrationsController, type: :controller do
it 'alert new mail are send' do
expect(AdministrationMailer).to receive(:new_admin_email).and_return(AdministrationMailer)
expect(AdministrationMailer).to receive(:deliver_now!)
+ expect(AdministrationMailer).to receive(:invite_admin).and_return(AdministrationMailer)
+ expect(AdministrationMailer).to receive(:deliver_now!)
subject
end
end
diff --git a/spec/controllers/api/v1/dossiers_controller_spec.rb b/spec/controllers/api/v1/dossiers_controller_spec.rb
index 8765cd6ee..266babaad 100644
--- a/spec/controllers/api/v1/dossiers_controller_spec.rb
+++ b/spec/controllers/api/v1/dossiers_controller_spec.rb
@@ -132,7 +132,8 @@ describe API::V1::DossiersController do
it { expect(subject.keys).to match_array(field_list) }
describe 'entreprise' do
- let(:field_list) { [
+ let(:field_list) {
+ [
:siren,
:capital_social,
:numero_tva_intracommunautaire,
@@ -144,7 +145,8 @@ describe API::V1::DossiersController do
:code_effectif_entreprise,
:date_creation,
:nom,
- :prenom]
+ :prenom
+ ]
}
subject { super()[:entreprise] }
@@ -162,11 +164,7 @@ describe API::V1::DossiersController do
end
describe 'types_de_piece_justificative' do
- let(:field_list) { [
- :id,
- :libelle,
- :description]
- }
+ let(:field_list) { [:id, :libelle, :description] }
subject { super()[:types_de_piece_justificative] }
it { expect(subject.length).to eq 2 }
@@ -185,9 +183,7 @@ describe API::V1::DossiersController do
create :piece_justificative, :rib, dossier: dossier, type_de_piece_justificative: dossier.procedure.types_de_piece_justificative.first, user: dossier.user
end
- let(:field_list) { [
- :url, :created_at, :type_de_piece_justificative_id]
- }
+ let(:field_list) { [:url, :created_at, :type_de_piece_justificative_id] }
subject { super()[:pieces_justificatives].first }
it { expect(subject.keys.include?(:content_url)).to be_truthy }
@@ -204,9 +200,7 @@ describe API::V1::DossiersController do
end
describe 'champs' do
- let(:field_list) { [
- :url]
- }
+ let(:field_list) { [:url] }
subject { super()[:champs] }
it { expect(subject.length).to eq 1 }
@@ -218,12 +212,14 @@ describe API::V1::DossiersController do
it { expect(subject.keys.include?(:type_de_champ)).to be_truthy }
describe 'type de champ' do
- let(:field_list) { [
+ let(:field_list) {
+ [
:id,
:libelle,
:description,
:order_place,
- :type]
+ :type
+ ]
}
subject { super()[:type_de_champ] }
@@ -277,9 +273,7 @@ describe API::V1::DossiersController do
end
describe 'champs_private' do
- let(:field_list) { [
- :url]
- }
+ let(:field_list) { [:url] }
subject { super()[:champs_private] }
it { expect(subject.length).to eq 1 }
@@ -291,12 +285,14 @@ describe API::V1::DossiersController do
it { expect(subject.keys.include?(:type_de_champ)).to be_truthy }
describe 'type de champ' do
- let(:field_list) { [
+ let(:field_list) {
+ [
:id,
:libelle,
:description,
:order_place,
- :type]
+ :type
+ ]
}
subject { super()[:type_de_champ] }
@@ -343,9 +339,7 @@ describe API::V1::DossiersController do
end
describe 'user' do
- let(:field_list) { [
- :url, :created_at, :type_de_piece_justificative_id]
- }
+ let(:field_list) { [:url, :created_at, :type_de_piece_justificative_id] }
subject { super()[:user] }
it { expect(subject[:email]).not_to be_nil }
@@ -353,7 +347,8 @@ describe API::V1::DossiersController do
end
describe 'etablissement' do
- let(:field_list) { [
+ let(:field_list) {
+ [
:siret,
:siege_social,
:naf,
diff --git a/spec/controllers/france_connect/particulier_controller_spec.rb b/spec/controllers/france_connect/particulier_controller_spec.rb
index 279f7b9ef..9bc9e61fd 100644
--- a/spec/controllers/france_connect/particulier_controller_spec.rb
+++ b/spec/controllers/france_connect/particulier_controller_spec.rb
@@ -11,7 +11,7 @@ describe FranceConnect::ParticulierController, type: :controller do
let(:email) { 'test@test.com' }
let(:password) { '' }
- let(:user_info) { Hashie::Mash.new(france_connect_particulier_id: france_connect_particulier_id, given_name: given_name, family_name: family_name, birthdate: birthdate, birthplace: birthplace, gender: gender, email: email, password: password) }
+ let(:user_info) { { france_connect_particulier_id: france_connect_particulier_id, given_name: given_name, family_name: family_name, birthdate: birthdate, birthplace: birthplace, gender: gender, email_france_connect: email } }
describe '.auth' do
it 'redirect to france connect serveur' do
@@ -31,7 +31,8 @@ describe FranceConnect::ParticulierController, type: :controller do
context 'when params code is present' do
context 'when code is correct' do
before do
- allow(FranceConnectService).to receive(:retrieve_user_informations_particulier).and_return(user_info)
+ allow(FranceConnectService).to receive(:retrieve_user_informations_particulier)
+ .and_return(FranceConnectInformation.new(user_info))
end
context 'when france_connect_particulier_id exist in database' do
diff --git a/spec/controllers/gestionnaires/passwords_controller_spec.rb b/spec/controllers/gestionnaires/passwords_controller_spec.rb
index 257109531..d23fe6623 100644
--- a/spec/controllers/gestionnaires/passwords_controller_spec.rb
+++ b/spec/controllers/gestionnaires/passwords_controller_spec.rb
@@ -18,21 +18,25 @@ describe Gestionnaires::PasswordsController, type: :controller do
end
it "also signs user in" do
- put :update, params: {gestionnaire: {
- reset_password_token: @token,
- password: "supersecret",
- password_confirmation: "supersecret",
- }}
+ put :update, params: {
+ gestionnaire: {
+ reset_password_token: @token,
+ password: "supersecret",
+ password_confirmation: "supersecret"
+ }
+ }
expect(subject.current_gestionnaire).to eq(gestionnaire)
expect(subject.current_user).to eq(user)
end
it "also signs administrateur in" do
- put :update, params: {gestionnaire: {
- reset_password_token: @token,
- password: "supersecret",
- password_confirmation: "supersecret",
- }}
+ put :update, params: {
+ gestionnaire: {
+ reset_password_token: @token,
+ password: "supersecret",
+ password_confirmation: "supersecret"
+ }
+ }
expect(subject.current_administrateur).to eq(administrateur)
expect(subject.current_user).to eq(user)
end
diff --git a/spec/controllers/new_gestionnaire/avis_controller_spec.rb b/spec/controllers/new_gestionnaire/avis_controller_spec.rb
index 5c63450d2..094d384ba 100644
--- a/spec/controllers/new_gestionnaire/avis_controller_spec.rb
+++ b/spec/controllers/new_gestionnaire/avis_controller_spec.rb
@@ -220,11 +220,13 @@ describe NewGestionnaire::AvisController, type: :controller do
.with(avis_id.to_s, invited_email)
.and_return(invitations_email)
- post :create_gestionnaire, params: { id: avis_id,
- email: invited_email,
- gestionnaire: {
- password: password
- } }
+ post :create_gestionnaire, params: {
+ id: avis_id,
+ email: invited_email,
+ gestionnaire: {
+ password: password
+ }
+ }
end
context 'when the email does not belong to the invitation' do
diff --git a/spec/controllers/new_gestionnaire/dossiers_controller_spec.rb b/spec/controllers/new_gestionnaire/dossiers_controller_spec.rb
index 2bb35d7a4..4249ecfaa 100644
--- a/spec/controllers/new_gestionnaire/dossiers_controller_spec.rb
+++ b/spec/controllers/new_gestionnaire/dossiers_controller_spec.rb
@@ -230,10 +230,12 @@ describe NewGestionnaire::DossiersController, type: :controller do
let(:procedure) { create(:procedure, :published, attestation_template: template, gestionnaires: [gestionnaire]) }
subject do
- post :terminer, params: { process_action: "accepter",
- procedure_id: procedure.id,
- dossier_id: dossier.id,
- dossier: { motivation: "Yallah" }}
+ post :terminer, params: {
+ process_action: "accepter",
+ procedure_id: procedure.id,
+ dossier_id: dossier.id,
+ dossier: { motivation: "Yallah" }
+ }
end
before do
diff --git a/spec/controllers/root_controller_spec.rb b/spec/controllers/root_controller_spec.rb
index fb72d2994..29538876b 100644
--- a/spec/controllers/root_controller_spec.rb
+++ b/spec/controllers/root_controller_spec.rb
@@ -45,7 +45,7 @@ describe RootController, type: :controller do
before do
stub_request(:get, "https://api.github.com/repos/betagouv/tps/releases/latest")
- .to_return(:status => 200, :body => '{"tag_name": "plip", "body": "blabla", "published_at": "2016-02-09T16:46:47Z"}', :headers => {})
+ .to_return(:status => 200, :body => '{"tag_name": "plip", "body": "blabla", "published_at": "2016-02-09T16:46:47Z"}', :headers => {})
subject
end
diff --git a/spec/controllers/stats_controller_spec.rb b/spec/controllers/stats_controller_spec.rb
index d8dedd133..74e912e49 100644
--- a/spec/controllers/stats_controller_spec.rb
+++ b/spec/controllers/stats_controller_spec.rb
@@ -18,11 +18,12 @@ describe StatsController, type: :controller do
subject { @controller.send(:last_four_months_hash, association, :updated_at) }
- it { expect(subject).to match_array([
- [I18n.l(62.days.ago.beginning_of_month, format: "%B %Y"), 2],
- [I18n.l(31.days.ago.beginning_of_month, format: "%B %Y"), 1]
+ it do
+ expect(subject).to match_array([
+ [I18n.l(62.days.ago.beginning_of_month, format: "%B %Y"), 2],
+ [I18n.l(31.days.ago.beginning_of_month, format: "%B %Y"), 1]
])
- }
+ end
end
context "while a super admin is logged in" do
@@ -41,11 +42,12 @@ describe StatsController, type: :controller do
subject { @controller.send(:last_four_months_hash, association, :updated_at) }
- it { expect(subject).to eq([
- [I18n.l(45.days.ago.beginning_of_month, format: "%B %Y"), 1],
- [I18n.l(1.days.ago.beginning_of_month, format: "%B %Y"), 2]
+ it do
+ expect(subject).to eq([
+ [I18n.l(45.days.ago.beginning_of_month, format: "%B %Y"), 1],
+ [I18n.l(1.days.ago.beginning_of_month, format: "%B %Y"), 2]
])
- }
+ end
end
end
@@ -68,12 +70,13 @@ describe StatsController, type: :controller do
subject { @controller.send(:cumulative_hash, association, :updated_at) }
- it { expect(subject).to eq({
+ it do
+ expect(subject).to eq({
2.month.ago.beginning_of_month => 2,
1.month.ago.beginning_of_month => 4,
1.hour.ago.beginning_of_month => 5
})
- }
+ end
end
context "while a super admin is not logged in" do
@@ -81,11 +84,12 @@ describe StatsController, type: :controller do
subject { @controller.send(:cumulative_hash, association, :updated_at) }
- it { expect(subject).to eq({
+ it do
+ expect(subject).to eq({
2.month.ago.beginning_of_month => 2,
1.month.ago.beginning_of_month => 4
})
- }
+ end
end
end
diff --git a/spec/controllers/users/carte_controller_shared_example.rb b/spec/controllers/users/carte_controller_shared_example.rb
index 7703f7a6d..01c885884 100644
--- a/spec/controllers/users/carte_controller_shared_example.rb
+++ b/spec/controllers/users/carte_controller_shared_example.rb
@@ -82,8 +82,8 @@ shared_examples 'carte_controller_spec' do
before do
allow_any_instance_of(CARTO::SGMAP::QuartiersPrioritaires::Adapter)
- .to receive(:to_params)
- .and_return({"QPCODE1234" => {:code => "QPCODE1234", :nom => "QP de test", :commune => "Paris", :geometry => {:type => "MultiPolygon", :coordinates => [[[[2.38715792094576, 48.8723062632126], [2.38724851642619, 48.8721392348061]]]]}}})
+ .to receive(:to_params)
+ .and_return({"QPCODE1234" => {:code => "QPCODE1234", :nom => "QP de test", :commune => "Paris", :geometry => {:type => "MultiPolygon", :coordinates => [[[[2.38715792094576, 48.8723062632126], [2.38724851642619, 48.8721392348061]]]]}}})
post :save, params: {dossier_id: dossier.id, json_latlngs: json_latlngs}
end
@@ -129,8 +129,8 @@ shared_examples 'carte_controller_spec' do
before do
allow_any_instance_of(CARTO::SGMAP::Cadastre::Adapter)
- .to receive(:to_params)
- .and_return([{:surface_intersection => "0.0006", :surface_parcelle => 11252.692583090324, :numero => "0013", :feuille => 1, :section => "CD", :code_dep => "30", :nom_com => "Le Grau-du-Roi", :code_com => "133", :code_arr => "000", :geometry => {:type => "MultiPolygon", :coordinates => [[[[4.134084, 43.5209193], [4.1346615, 43.5212035], [4.1346984, 43.521189], [4.135096, 43.5213848], [4.1350839, 43.5214122], [4.1352697, 43.521505], [4.1356278, 43.5211065], [4.1357402, 43.5207188], [4.1350935, 43.5203936], [4.135002, 43.5204366], [4.1346051, 43.5202412], [4.134584, 43.5202472], [4.1345572, 43.5202551], [4.134356, 43.5203137], [4.1342488, 43.5203448], [4.134084, 43.5209193]]]]}}])
+ .to receive(:to_params)
+ .and_return([{:surface_intersection => "0.0006", :surface_parcelle => 11252.692583090324, :numero => "0013", :feuille => 1, :section => "CD", :code_dep => "30", :nom_com => "Le Grau-du-Roi", :code_com => "133", :code_arr => "000", :geometry => {:type => "MultiPolygon", :coordinates => [[[[4.134084, 43.5209193], [4.1346615, 43.5212035], [4.1346984, 43.521189], [4.135096, 43.5213848], [4.1350839, 43.5214122], [4.1352697, 43.521505], [4.1356278, 43.5211065], [4.1357402, 43.5207188], [4.1350935, 43.5203936], [4.135002, 43.5204366], [4.1346051, 43.5202412], [4.134584, 43.5202472], [4.1345572, 43.5202551], [4.134356, 43.5203137], [4.1342488, 43.5203448], [4.134084, 43.5209193]]]]}}])
post :save, params: {dossier_id: dossier.id, json_latlngs: json_latlngs}
end
@@ -184,7 +184,7 @@ shared_examples 'carte_controller_spec' do
dossier.update etablissement: nil
stub_request(:get, /http:\/\/api-adresse[.]data[.]gouv[.]fr\/search[?]limit=1&q=/)
- .to_return(status: 200, body: '{"query": "babouba", "version": "draft", "licence": "ODbL 1.0", "features": [], "type": "FeatureCollection", "attribution": "BAN"}', headers: {})
+ .to_return(status: 200, body: '{"query": "babouba", "version": "draft", "licence": "ODbL 1.0", "features": [], "type": "FeatureCollection", "attribution": "BAN"}', headers: {})
get :get_position, params: {dossier_id: dossier.id}
end
@@ -202,7 +202,7 @@ shared_examples 'carte_controller_spec' do
before do
stub_request(:get, /http:\/\/api-adresse[.]data[.]gouv[.]fr\/search[?]limit=1&q=/)
- .to_return(status: 200, body: '{"query": "babouba", "version": "draft", "licence": "ODbL 1.0", "features": [], "type": "FeatureCollection", "attribution": "BAN"}', headers: {})
+ .to_return(status: 200, body: '{"query": "babouba", "version": "draft", "licence": "ODbL 1.0", "features": [], "type": "FeatureCollection", "attribution": "BAN"}', headers: {})
get :get_position, params: {dossier_id: dossier.id}
end
@@ -217,7 +217,7 @@ shared_examples 'carte_controller_spec' do
context 'retour d\'un fichier JSON avec 3 attributs' do
before do
stub_request(:get, "http://api-adresse.data.gouv.fr/search?limit=1&q=#{adresse}")
- .to_return(status: 200, body: '{"query": "50 avenue des champs u00e9lysu00e9es Paris 75008", "version": "draft", "licence": "ODbL 1.0", "features": [{"geometry": {"coordinates": [2.306888, 48.870374], "type": "Point"}, "type": "Feature", "properties": {"city": "Paris", "label": "50 Avenue des Champs u00c9lysu00e9es 75008 Paris", "housenumber": "50", "id": "ADRNIVX_0000000270748251", "postcode": "75008", "name": "50 Avenue des Champs u00c9lysu00e9es", "citycode": "75108", "context": "75, u00cele-de-France", "score": 0.9054545454545454, "type": "housenumber"}}], "type": "FeatureCollection", "attribution": "BAN"}', headers: {})
+ .to_return(status: 200, body: '{"query": "50 avenue des champs u00e9lysu00e9es Paris 75008", "version": "draft", "licence": "ODbL 1.0", "features": [{"geometry": {"coordinates": [2.306888, 48.870374], "type": "Point"}, "type": "Feature", "properties": {"city": "Paris", "label": "50 Avenue des Champs u00c9lysu00e9es 75008 Paris", "housenumber": "50", "id": "ADRNIVX_0000000270748251", "postcode": "75008", "name": "50 Avenue des Champs u00c9lysu00e9es", "citycode": "75108", "context": "75, u00cele-de-France", "score": 0.9054545454545454, "type": "housenumber"}}], "type": "FeatureCollection", "attribution": "BAN"}', headers: {})
get :get_position, params: {dossier_id: dossier.id}
end
@@ -244,8 +244,8 @@ shared_examples 'carte_controller_spec' do
describe 'POST #get_qp' do
before do
allow_any_instance_of(CARTO::SGMAP::QuartiersPrioritaires::Adapter)
- .to receive(:to_params)
- .and_return({"QPCODE1234" => {:code => "QPCODE1234", :geometry => {:type => "MultiPolygon", :coordinates => [[[[2.38715792094576, 48.8723062632126], [2.38724851642619, 48.8721392348061]]]]}}})
+ .to receive(:to_params)
+ .and_return({"QPCODE1234" => {:code => "QPCODE1234", :geometry => {:type => "MultiPolygon", :coordinates => [[[[2.38715792094576, 48.8723062632126], [2.38724851642619, 48.8721392348061]]]]}}})
post :get_qp, params: {dossier_id: dossier.id, coordinates: coordinates}
end
diff --git a/spec/controllers/users/description_controller_shared_example.rb b/spec/controllers/users/description_controller_shared_example.rb
index 785b0e27d..68da86a82 100644
--- a/spec/controllers/users/description_controller_shared_example.rb
+++ b/spec/controllers/users/description_controller_shared_example.rb
@@ -279,7 +279,7 @@ shared_examples 'description_controller_spec' do
it { expect(response).to redirect_to users_dossier_recapitulatif_path }
context 'when champs is type_de_champ datetime' do
- it { expect(dossier.champs.find(dossier_datetime_champ_id).value).to eq(dossier_date_value + ' ' + dossier_hour_value + ':' + dossier_minute_value) }
+ it { expect(dossier.champs.find(dossier_datetime_champ_id).value).to eq("#{dossier_date_value} #{dossier_hour_value}:#{dossier_minute_value}") }
end
context 'when champs value is empty' do
@@ -300,9 +300,11 @@ shared_examples 'description_controller_spec' do
context 'Sauvegarde des pièces justificatives', vcr: { cassette_name: 'controllers_users_description_controller_sauvegarde_pj' } do
let(:all_pj_type) { dossier.procedure.type_de_piece_justificative_ids }
before do
- post :update, params: { dossier_id: dossier_id,
- 'piece_justificative_' + all_pj_type[0].to_s => piece_justificative_0,
- 'piece_justificative_' + all_pj_type[1].to_s => piece_justificative_1 }
+ post :update, params: {
+ dossier_id: dossier_id,
+ 'piece_justificative_' + all_pj_type[0].to_s => piece_justificative_0,
+ 'piece_justificative_' + all_pj_type[1].to_s => piece_justificative_1
+ }
dossier.reload
end
@@ -310,9 +312,11 @@ shared_examples 'description_controller_spec' do
it 'ClamavService safe_file? is call' do
expect(ClamavService).to receive(:safe_file?).twice
- post :update, params: { dossier_id: dossier_id,
- 'piece_justificative_' + all_pj_type[0].to_s => piece_justificative_0,
- 'piece_justificative_' + all_pj_type[1].to_s => piece_justificative_1 }
+ post :update, params: {
+ dossier_id: dossier_id,
+ 'piece_justificative_' + all_pj_type[0].to_s => piece_justificative_0,
+ 'piece_justificative_' + all_pj_type[1].to_s => piece_justificative_1
+ }
end
end
@@ -348,9 +352,12 @@ shared_examples 'description_controller_spec' do
describe 'POST #pieces_justificatives', vcr: { cassette_name: 'controllers_users_description_controller_pieces_justificatives' } do
let(:all_pj_type) { dossier.procedure.type_de_piece_justificative_ids }
- subject { patch :pieces_justificatives, params: { dossier_id: dossier.id,
- 'piece_justificative_' + all_pj_type[0].to_s => piece_justificative_0,
- 'piece_justificative_' + all_pj_type[1].to_s => piece_justificative_1 }
+ subject {
+ patch :pieces_justificatives, params: {
+ dossier_id: dossier.id,
+ 'piece_justificative_' + all_pj_type[0].to_s => piece_justificative_0,
+ 'piece_justificative_' + all_pj_type[1].to_s => piece_justificative_1
+ }
}
context 'when user is a guest' do
@@ -424,9 +431,12 @@ end
shared_examples 'description_controller_spec_POST_piece_justificatives_for_owner' do
let(:all_pj_type) { dossier.procedure.type_de_piece_justificative_ids }
- subject { patch :pieces_justificatives, params: { dossier_id: dossier.id,
- 'piece_justificative_' + all_pj_type[0].to_s => piece_justificative_0,
- 'piece_justificative_' + all_pj_type[1].to_s => piece_justificative_1 }
+ subject {
+ patch :pieces_justificatives, params: {
+ dossier_id: dossier.id,
+ 'piece_justificative_' + all_pj_type[0].to_s => piece_justificative_0,
+ 'piece_justificative_' + all_pj_type[1].to_s => piece_justificative_1
+ }
}
context 'when user is the owner', vcr: { cassette_name: 'controllers_users_description_controller_pieces_justificatives' } do
diff --git a/spec/controllers/users/dossiers_controller_spec.rb b/spec/controllers/users/dossiers_controller_spec.rb
index deb8fb97e..3b5865c60 100644
--- a/spec/controllers/users/dossiers_controller_spec.rb
+++ b/spec/controllers/users/dossiers_controller_spec.rb
@@ -179,19 +179,19 @@ describe Users::DossiersController, type: :controller do
before do
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/etablissements/#{siret_not_found}?token=#{SIADETOKEN}")
- .to_return(status: 404, body: 'fake body')
+ .to_return(status: 404, body: 'fake body')
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/etablissements/#{siret}?token=#{SIADETOKEN}")
- .to_return(status: status_entreprise_call, body: File.read('spec/support/files/etablissement.json'))
+ .to_return(status: status_entreprise_call, body: File.read('spec/support/files/etablissement.json'))
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/entreprises/#{siren}?token=#{SIADETOKEN}")
- .to_return(status: status_entreprise_call, body: File.read('spec/support/files/entreprise.json'))
+ .to_return(status: status_entreprise_call, body: File.read('spec/support/files/entreprise.json'))
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/exercices/#{siret}?token=#{SIADETOKEN}")
- .to_return(status: exercices_status, body: exercices_body)
+ .to_return(status: exercices_status, body: exercices_body)
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/associations/#{siret}?token=#{SIADETOKEN}")
- .to_return(status: rna_status, body: rna_body)
+ .to_return(status: rna_status, body: rna_body)
dossier
end
diff --git a/spec/controllers/users/passwords_controller_spec.rb b/spec/controllers/users/passwords_controller_spec.rb
index 37a8f18e6..cd9a76ff0 100644
--- a/spec/controllers/users/passwords_controller_spec.rb
+++ b/spec/controllers/users/passwords_controller_spec.rb
@@ -18,21 +18,25 @@ describe Users::PasswordsController, type: :controller do
end
it "also signs gestionnaire in" do
- put :update, params: {user: {
- reset_password_token: @token,
- password: "supersecret",
- password_confirmation: "supersecret",
- }}
+ put :update, params: {
+ user: {
+ reset_password_token: @token,
+ password: "supersecret",
+ password_confirmation: "supersecret",
+ }
+ }
expect(subject.current_user).to eq(user)
expect(subject.current_gestionnaire).to eq(gestionnaire)
end
it "also signs administrateur in" do
- put :update, params: {user: {
- reset_password_token: @token,
- password: "supersecret",
- password_confirmation: "supersecret",
- }}
+ put :update, params: {
+ user: {
+ reset_password_token: @token,
+ password: "supersecret",
+ password_confirmation: "supersecret",
+ }
+ }
expect(subject.current_user).to eq(user)
expect(subject.current_administrateur).to eq(administrateur)
end
diff --git a/spec/controllers/users/sessions_controller_spec.rb b/spec/controllers/users/sessions_controller_spec.rb
index 6cbaac682..2263df65e 100644
--- a/spec/controllers/users/sessions_controller_spec.rb
+++ b/spec/controllers/users/sessions_controller_spec.rb
@@ -118,7 +118,7 @@ describe Users::SessionsController, type: :controller do
let(:loged_in_with_france_connect) { 'particulier' }
it 'redirect to france connect logout page' do
- expect(response).to redirect_to(FRANCE_CONNECT.particulier_logout_endpoint)
+ expect(response).to redirect_to(FRANCE_CONNECT[:particulier][:logout_endpoint])
end
end
@@ -161,7 +161,7 @@ describe Users::SessionsController, type: :controller do
user.update_attributes(loged_in_with_france_connect: 'particulier')
sign_in user
delete :destroy
- expect(@response.headers["Location"]).to eq(FRANCE_CONNECT.particulier_logout_endpoint)
+ expect(@response.headers["Location"]).to eq(FRANCE_CONNECT[:particulier][:logout_endpoint])
end
context "when associated administrateur" do
diff --git a/spec/decorators/entreprise_decorator_spec.rb b/spec/decorators/entreprise_decorator_spec.rb
index e5f229486..90076d179 100644
--- a/spec/decorators/entreprise_decorator_spec.rb
+++ b/spec/decorators/entreprise_decorator_spec.rb
@@ -7,12 +7,11 @@ describe EntrepriseDecorator do
let(:prenom) { 'mon prenom' }
let(:entreprise_params) do
{
- capital_social: 123_000,
- code_effectif_entreprise: code_effectif,
- raison_sociale: raison_sociale,
- nom: nom,
- prenom: prenom
-
+ capital_social: 123_000,
+ code_effectif_entreprise: code_effectif,
+ raison_sociale: raison_sociale,
+ nom: nom,
+ prenom: prenom
}
end
let(:entreprise) { create(:entreprise, entreprise_params) }
@@ -28,7 +27,7 @@ describe EntrepriseDecorator do
context 'when raison_sociale is nil' do
let(:raison_sociale) { nil }
it 'display nom and prenom' do
- expect(subject).to eq(nom + ' ' + prenom)
+ expect(subject).to eq("#{nom} #{prenom}")
end
end
end
diff --git a/spec/features/admin/connection_spec.rb b/spec/features/admin/connection_spec.rb
index 7b839e6da..aeb6a4dcc 100644
--- a/spec/features/admin/connection_spec.rb
+++ b/spec/features/admin/connection_spec.rb
@@ -30,7 +30,7 @@ feature 'Administrator connection' do
context 'when clicking on sign-out' do
before do
stub_request(:get, "https://api.github.com/repos/betagouv/tps/releases/latest")
- .to_return(:status => 200, :body => '{"tag_name": "plip", "body": "blabla", "published_at": "2016-02-09T16:46:47Z"}', :headers => {})
+ .to_return(:status => 200, :body => '{"tag_name": "plip", "body": "blabla", "published_at": "2016-02-09T16:46:47Z"}', :headers => {})
page.find_by_id('sign-out').find('a').click
end
diff --git a/spec/features/france_connect/france_connect_particulier_spec.rb b/spec/features/france_connect/france_connect_particulier_spec.rb
index 720523714..41b57d27f 100644
--- a/spec/features/france_connect/france_connect_particulier_spec.rb
+++ b/spec/features/france_connect/france_connect_particulier_spec.rb
@@ -10,14 +10,17 @@ feature 'France Connect Particulier Connexion' do
let(:email) { 'plop@plop.com' }
let(:france_connect_particulier_id) { 'blabla' }
- let(:user_info) { Hashie::Mash.new(france_connect_particulier_id: france_connect_particulier_id,
- given_name: given_name,
- family_name: family_name,
- birthdate: birthdate,
- birthplace: birthplace,
- gender: gender,
- email: email)
- }
+ let(:user_info) do
+ {
+ france_connect_particulier_id: france_connect_particulier_id,
+ given_name: given_name,
+ family_name: family_name,
+ birthdate: birthdate,
+ birthplace: birthplace,
+ gender: gender,
+ email_france_connect: email
+ }
+ end
context 'when user is on login page' do
before do
@@ -32,19 +35,20 @@ feature 'France Connect Particulier Connexion' do
let(:code) { 'plop' }
context 'when authentification is ok' do
- let(:france_connect_information) { create(:france_connect_information,
- france_connect_particulier_id: france_connect_particulier_id,
- given_name: given_name,
- family_name: family_name,
- birthdate: birthdate,
- birthplace: birthplace,
- gender: gender,
- email_france_connect: email)
- }
+ let(:france_connect_information) do
+ create(:france_connect_information,
+ france_connect_particulier_id: france_connect_particulier_id,
+ given_name: given_name,
+ family_name: family_name,
+ birthdate: birthdate,
+ birthplace: birthplace,
+ gender: gender,
+ email_france_connect: email)
+ end
before do
allow_any_instance_of(FranceConnectParticulierClient).to receive(:authorization_uri).and_return(france_connect_particulier_callback_path(code: code))
- allow(FranceConnectService).to receive(:retrieve_user_informations_particulier).and_return(user_info)
+ allow(FranceConnectService).to receive(:retrieve_user_informations_particulier).and_return(FranceConnectInformation.new(user_info))
end
context 'when is the first connexion' do
diff --git a/spec/features/new_gestionnaire/gestionnaire_spec.rb b/spec/features/new_gestionnaire/gestionnaire_spec.rb
index d858ca41e..ed4cacc89 100644
--- a/spec/features/new_gestionnaire/gestionnaire_spec.rb
+++ b/spec/features/new_gestionnaire/gestionnaire_spec.rb
@@ -162,7 +162,8 @@ feature 'The gestionnaire part' do
"suivi #{suivi}",
"traité #{traite}",
"tous les dossiers #{tous_les_dossiers}",
- "archivé #{archive}"]
+ "archivé #{archive}"
+ ]
texts.each { |text| expect(page).to have_text(text) }
end
diff --git a/spec/features/users/complete_demande_spec.rb b/spec/features/users/complete_demande_spec.rb
index f524fd3f9..c2f455100 100644
--- a/spec/features/users/complete_demande_spec.rb
+++ b/spec/features/users/complete_demande_spec.rb
@@ -31,14 +31,14 @@ feature 'user path for dossier creation' do
context 'sets siret' do
before do
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/etablissements/#{siret}?token=#{SIADETOKEN}")
- .to_return(body: File.read('spec/support/files/etablissement.json', status: 200))
+ .to_return(body: File.read('spec/support/files/etablissement.json', status: 200))
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/entreprises/#{siren}?token=#{SIADETOKEN}")
- .to_return(status: 200, body: File.read('spec/support/files/entreprise.json'))
+ .to_return(status: 200, body: File.read('spec/support/files/entreprise.json'))
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/exercices/#{siret}?token=#{SIADETOKEN}")
- .to_return(status: 200, body: File.read('spec/support/files/exercices.json'))
+ .to_return(status: 200, body: File.read('spec/support/files/exercices.json'))
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/associations/#{siret}?token=#{SIADETOKEN}")
- .to_return(status: 404, body: '')
+ .to_return(status: 404, body: '')
page.find_by_id('dossier-siret').set siret
page.click_on 'Valider'
diff --git a/spec/features/users/dossier_creation_spec.rb b/spec/features/users/dossier_creation_spec.rb
index 67b1d7185..4c10c007e 100644
--- a/spec/features/users/dossier_creation_spec.rb
+++ b/spec/features/users/dossier_creation_spec.rb
@@ -47,13 +47,13 @@ feature 'As a User I wanna create a dossier' do
expect(page).to have_current_path(users_dossier_path(procedure_with_siret.dossiers.last.id.to_s), only_path: true)
fill_in 'dossier-siret', with: siret
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/etablissements/#{siret}?token=#{SIADETOKEN}")
- .to_return(status: 200, body: File.read('spec/support/files/etablissement.json'))
+ .to_return(status: 200, body: File.read('spec/support/files/etablissement.json'))
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/entreprises/#{siren}?token=#{SIADETOKEN}")
- .to_return(status: 200, body: File.read('spec/support/files/entreprise.json'))
+ .to_return(status: 200, body: File.read('spec/support/files/entreprise.json'))
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/exercices/#{siret}?token=#{SIADETOKEN}")
- .to_return(status: 200, body: File.read('spec/support/files/exercices.json'))
+ .to_return(status: 200, body: File.read('spec/support/files/exercices.json'))
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/associations/#{siret}?token=#{SIADETOKEN}")
- .to_return(status: 404, body: '')
+ .to_return(status: 404, body: '')
page.find_by_id('dossier-siret').set siret
page.find_by_id('submit-siret').trigger('click')
expect(page).to have_css('#recap-info-entreprise')
diff --git a/spec/features/users/start_demande_spec.rb b/spec/features/users/start_demande_spec.rb
index caa29fc31..c78e29cb0 100644
--- a/spec/features/users/start_demande_spec.rb
+++ b/spec/features/users/start_demande_spec.rb
@@ -27,13 +27,13 @@ feature 'user arrive on siret page' do
context 'when enter a siret', js: true do
before do
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/etablissements/#{siret}?token=#{SIADETOKEN}")
- .to_return(status: 200, body: File.read('spec/support/files/etablissement.json'))
+ .to_return(status: 200, body: File.read('spec/support/files/etablissement.json'))
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/entreprises/#{siren}?token=#{SIADETOKEN}")
- .to_return(status: 200, body: File.read('spec/support/files/entreprise.json'))
+ .to_return(status: 200, body: File.read('spec/support/files/entreprise.json'))
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/exercices/#{siret}?token=#{SIADETOKEN}")
- .to_return(status: 200, body: File.read('spec/support/files/exercices.json'))
+ .to_return(status: 200, body: File.read('spec/support/files/exercices.json'))
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/associations/#{siret}?token=#{SIADETOKEN}")
- .to_return(status: 404, body: '')
+ .to_return(status: 404, body: '')
page.find_by_id('dossier-siret').set siret
page.click_on 'Valider'
diff --git a/spec/jobs/find_dubious_procedures_job_spec.rb b/spec/jobs/find_dubious_procedures_job_spec.rb
index 01776aee7..d18ac6992 100644
--- a/spec/jobs/find_dubious_procedures_job_spec.rb
+++ b/spec/jobs/find_dubious_procedures_job_spec.rb
@@ -16,8 +16,10 @@ RSpec.describe FindDubiousProceduresJob, type: :job do
context 'with suspicious champs' do
let(:forbidden_tdcs) do
- [create(:type_de_champ_public, libelle: 'num de securite sociale, stp'),
- create(:type_de_champ_public, libelle: "t'aurais une carte bancaire ?")]
+ [
+ create(:type_de_champ_public, libelle: 'num de securite sociale, stp'),
+ create(:type_de_champ_public, libelle: "t'aurais une carte bancaire ?")
+ ]
end
let(:tdcs) { forbidden_tdcs + [allowed_tdc] }
diff --git a/spec/lib/carto/bano/address_retriever_spec.rb b/spec/lib/carto/bano/address_retriever_spec.rb
index 0f7797a0e..8ace473f0 100644
--- a/spec/lib/carto/bano/address_retriever_spec.rb
+++ b/spec/lib/carto/bano/address_retriever_spec.rb
@@ -10,7 +10,7 @@ describe Carto::Bano::AddressRetriever do
before do
stub_request(:get, "http://api-adresse.data.gouv.fr/search?&q=#{request}&limit=5")
- .to_return(status: status, body: response, headers: {})
+ .to_return(status: status, body: response, headers: {})
end
context 'when address return a list of address' do
diff --git a/spec/lib/carto/sgmap/api_spec.rb b/spec/lib/carto/sgmap/api_spec.rb
index 00fe308b8..1a541d1cc 100644
--- a/spec/lib/carto/sgmap/api_spec.rb
+++ b/spec/lib/carto/sgmap/api_spec.rb
@@ -6,9 +6,9 @@ describe CARTO::SGMAP::API do
before do
stub_request(:post, "https://apicarto.sgmap.fr/quartiers-prioritaires/search")
- .with(:body => /.*/,
- :headers => {'Content-Type' => 'application/json'})
- .to_return(status: status, body: body)
+ .with(:body => /.*/,
+ :headers => {'Content-Type' => 'application/json'})
+ .to_return(status: status, body: body)
end
context 'when geojson is empty' do
let(:geojson) { '' }
@@ -54,9 +54,9 @@ describe CARTO::SGMAP::API do
before do
stub_request(:post, "https://apicarto.sgmap.fr/cadastre/geometrie")
- .with(:body => /.*/,
- :headers => {'Content-Type' => 'application/json'})
- .to_return(status: status, body: body)
+ .with(:body => /.*/,
+ :headers => {'Content-Type' => 'application/json'})
+ .to_return(status: status, body: body)
end
context 'when geojson is empty' do
let(:geojson) { '' }
diff --git a/spec/lib/carto/sgmap/cadastre/adapter_spec.rb b/spec/lib/carto/sgmap/cadastre/adapter_spec.rb
index 96734e784..46b11e1b1 100644
--- a/spec/lib/carto/sgmap/cadastre/adapter_spec.rb
+++ b/spec/lib/carto/sgmap/cadastre/adapter_spec.rb
@@ -5,9 +5,9 @@ describe CARTO::SGMAP::Cadastre::Adapter do
before do
stub_request(:post, "https://apicarto.sgmap.fr/cadastre/geometrie")
- .with(:body => /.*/,
- :headers => {'Content-Type' => 'application/json'})
- .to_return(status: status, body: body)
+ .with(:body => /.*/,
+ :headers => {'Content-Type' => 'application/json'})
+ .to_return(status: status, body: body)
end
context 'coordinates are filled' do
@@ -23,16 +23,19 @@ describe CARTO::SGMAP::Cadastre::Adapter do
subject { adapter.filter_properties adapter.data_source }
it { expect(subject.size).to eq 9 }
- it { expect(subject.keys).to eq [:surface_intersection,
- :surface_parcelle,
- :numero,
- :feuille,
- :section,
- :code_dep,
- :nom_com,
- :code_com,
- :code_arr]
- }
+ it do
+ expect(subject.keys).to eq [
+ :surface_intersection,
+ :surface_parcelle,
+ :numero,
+ :feuille,
+ :section,
+ :code_dep,
+ :nom_com,
+ :code_com,
+ :code_arr
+ ]
+ end
end
describe 'Attributes' do
diff --git a/spec/lib/carto/sgmap/quartiers_prioritaires/adapter_spec.rb b/spec/lib/carto/sgmap/quartiers_prioritaires/adapter_spec.rb
index 79ed40afc..1458acb06 100644
--- a/spec/lib/carto/sgmap/quartiers_prioritaires/adapter_spec.rb
+++ b/spec/lib/carto/sgmap/quartiers_prioritaires/adapter_spec.rb
@@ -5,9 +5,9 @@ describe CARTO::SGMAP::QuartiersPrioritaires::Adapter do
before do
stub_request(:post, "https://apicarto.sgmap.fr/quartiers-prioritaires/search")
- .with(:body => /.*/,
- :headers => {'Content-Type' => 'application/json'})
- .to_return(status: status, body: body)
+ .with(:body => /.*/,
+ :headers => {'Content-Type' => 'application/json'})
+ .to_return(status: status, body: body)
end
context 'coordinates are filled' do
diff --git a/spec/lib/file_size_validator_spec.rb b/spec/lib/file_size_validator_spec.rb
index 081b107ff..78d5461bb 100644
--- a/spec/lib/file_size_validator_spec.rb
+++ b/spec/lib/file_size_validator_spec.rb
@@ -24,8 +24,8 @@ describe FileSizeValidator, lib: true do
describe 'options uses a symbol' do
let(:options) do
{
- maximum: :test,
- attributes: { content: attachment }
+ maximum: :test,
+ attributes: { content: attachment }
}
end
diff --git a/spec/lib/siade/api_spec.rb b/spec/lib/siade/api_spec.rb
index 591e10423..ab9732265 100644
--- a/spec/lib/siade/api_spec.rb
+++ b/spec/lib/siade/api_spec.rb
@@ -5,7 +5,7 @@ describe SIADE::API do
subject { described_class.entreprise(siren) }
before do
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/entreprises/#{siren}?token=#{SIADETOKEN}")
- .to_return(status: status, body: body)
+ .to_return(status: status, body: body)
end
context 'when siren does not exist' do
let(:siren) { '111111111' }
@@ -31,7 +31,7 @@ describe SIADE::API do
subject { described_class.etablissement(siret) }
before do
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/etablissements/#{siret}?token=#{SIADETOKEN}")
- .to_return(status: status, body: body)
+ .to_return(status: status, body: body)
end
context 'when siret does not exist' do
@@ -58,7 +58,7 @@ describe SIADE::API do
describe '.exercices' do
before do
stub_request(:get, /https:\/\/staging.entreprise.api.gouv.fr\/v2\/exercices\/.*token=/)
- .to_return(status: status, body: body)
+ .to_return(status: status, body: body)
end
context 'when siret does not exist' do
@@ -89,7 +89,7 @@ describe SIADE::API do
describe '.rna' do
before do
stub_request(:get, /https:\/\/staging.entreprise.api.gouv.fr\/v2\/associations\/.*token=/)
- .to_return(status: status, body: body)
+ .to_return(status: status, body: body)
end
subject { described_class.rna(siren) }
diff --git a/spec/lib/siade/entreprise_adapter_spec.rb b/spec/lib/siade/entreprise_adapter_spec.rb
index 02a2e7f42..9cd14a50f 100644
--- a/spec/lib/siade/entreprise_adapter_spec.rb
+++ b/spec/lib/siade/entreprise_adapter_spec.rb
@@ -5,7 +5,7 @@ describe SIADE::EntrepriseAdapter do
before do
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/entreprises/418166096?token=#{SIADETOKEN}")
- .to_return(body: File.read('spec/support/files/entreprise.json', status: 200))
+ .to_return(body: File.read('spec/support/files/entreprise.json', status: 200))
end
it '#to_params class est une Hash ?' do
diff --git a/spec/lib/siade/etablissement_adapter_spec.rb b/spec/lib/siade/etablissement_adapter_spec.rb
index 1693a2756..394f2ee70 100644
--- a/spec/lib/siade/etablissement_adapter_spec.rb
+++ b/spec/lib/siade/etablissement_adapter_spec.rb
@@ -7,7 +7,7 @@ describe SIADE::EtablissementAdapter do
before do
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/etablissements/#{siret}?token=#{SIADETOKEN}")
- .to_return(body: File.read('spec/support/files/etablissement.json', status: 200))
+ .to_return(body: File.read('spec/support/files/etablissement.json', status: 200))
end
it '#to_params class est une Hash ?' do
@@ -74,7 +74,7 @@ describe SIADE::EtablissementAdapter do
before do
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/etablissements/#{bad_siret}?token=#{SIADETOKEN}")
- .to_return(body: 'Fake body', status: 404)
+ .to_return(body: 'Fake body', status: 404)
end
it { expect(subject).to be_nil }
diff --git a/spec/lib/siade/exercices_adapter_spec.rb b/spec/lib/siade/exercices_adapter_spec.rb
index bdf499021..eaab69563 100644
--- a/spec/lib/siade/exercices_adapter_spec.rb
+++ b/spec/lib/siade/exercices_adapter_spec.rb
@@ -6,7 +6,7 @@ describe SIADE::ExercicesAdapter do
before do
stub_request(:get, /https:\/\/staging.entreprise.api.gouv.fr\/v2\/exercices\/.*token=/)
- .to_return(body: File.read('spec/support/files/exercices.json', status: 200))
+ .to_return(body: File.read('spec/support/files/exercices.json', status: 200))
end
it '#to_params class est une Hash ?' do
diff --git a/spec/lib/siade/rna_adapter_spec.rb b/spec/lib/siade/rna_adapter_spec.rb
index ded722203..116b14761 100644
--- a/spec/lib/siade/rna_adapter_spec.rb
+++ b/spec/lib/siade/rna_adapter_spec.rb
@@ -9,7 +9,7 @@ describe SIADE::RNAAdapter do
before do
stub_request(:get, /https:\/\/staging.entreprise.api.gouv.fr\/v2\/associations\/.*token=/)
- .to_return(body: body, status: status)
+ .to_return(body: body, status: status)
end
context 'when siret is not valid' do
diff --git a/spec/models/administrateur_spec.rb b/spec/models/administrateur_spec.rb
index 65cc16f5f..6fb94c9fc 100644
--- a/spec/models/administrateur_spec.rb
+++ b/spec/models/administrateur_spec.rb
@@ -50,4 +50,20 @@ describe Administrateur, type: :model do
expect(gestionnaire.valid_password?('super secret')).to be(true)
end
end
+
+ describe '#find_inactive_by_token' do
+ let(:administrateur) { create(:administration).invite_admin('paul@tps.fr') }
+ let(:reset_password_token) { administrateur.invite! }
+
+ it { expect(Administrateur.find_inactive_by_token(reset_password_token)).not_to be_nil }
+ end
+
+ describe '#reset_password' do
+ let(:administrateur) { create(:administration).invite_admin('paul@tps.fr') }
+ let(:reset_password_token) { administrateur.invite! }
+
+ it { expect(Administrateur.reset_password(reset_password_token, '12345678').errors).to be_empty }
+ it { expect(Administrateur.reset_password('123', '12345678').errors).not_to be_empty }
+ it { expect(Administrateur.reset_password(reset_password_token, '').errors).not_to be_empty }
+ end
end
diff --git a/spec/models/administration_spec.rb b/spec/models/administration_spec.rb
new file mode 100644
index 000000000..9f8e0463e
--- /dev/null
+++ b/spec/models/administration_spec.rb
@@ -0,0 +1,17 @@
+require 'spec_helper'
+
+describe Administration, type: :model do
+ describe '#invite_admin' do
+ let(:administration) { create :administration }
+ let(:valid_email) { 'paul@tps.fr' }
+ subject { administration.invite_admin(valid_email) }
+
+ it {
+ expect(subject.errors).to be_empty
+ expect(subject).to be_persisted
+ expect(administration.invite_admin(valid_email).errors).not_to be_empty
+ }
+ it { expect(administration.invite_admin(nil).errors).not_to be_empty }
+ it { expect(administration.invite_admin('toto').errors).not_to be_empty }
+ end
+end
diff --git a/spec/models/attestation_template_spec.rb b/spec/models/attestation_template_spec.rb
index a02b29b52..455907c8a 100644
--- a/spec/models/attestation_template_spec.rb
+++ b/spec/models/attestation_template_spec.rb
@@ -148,8 +148,10 @@ describe AttestationTemplate, type: :model do
context 'when the procedure has a type de champ named libelleA et libelleB' do
let(:types_de_champ) do
- [create(:type_de_champ_public, libelle: 'libelleA'),
- create(:type_de_champ_public, libelle: 'libelleB')]
+ [
+ create(:type_de_champ_public, libelle: 'libelleA'),
+ create(:type_de_champ_public, libelle: 'libelleB')
+ ]
end
context 'and the are used in the template title and body' do
diff --git a/spec/models/concern/tags_substitution_concern_spec.rb b/spec/models/concern/tags_substitution_concern_spec.rb
index 6ab217926..911fa29de 100644
--- a/spec/models/concern/tags_substitution_concern_spec.rb
+++ b/spec/models/concern/tags_substitution_concern_spec.rb
@@ -74,8 +74,10 @@ describe TagsSubstitutionConcern, type: :model do
context 'when the procedure has a type de champ named libelleA et libelleB' do
let(:types_de_champ) do
- [create(:type_de_champ_public, libelle: 'libelleA'),
- create(:type_de_champ_public, libelle: 'libelleB')]
+ [
+ create(:type_de_champ_public, libelle: 'libelleA'),
+ create(:type_de_champ_public, libelle: 'libelleB')
+ ]
end
context 'and the template is nil' do
@@ -142,8 +144,10 @@ describe TagsSubstitutionConcern, type: :model do
context 'when the procedure has 2 types de champ date and datetime' do
let(:types_de_champ) do
- [create(:type_de_champ_public, libelle: 'date', type_champ: 'date'),
- create(:type_de_champ_public, libelle: 'datetime', type_champ: 'datetime')]
+ [
+ create(:type_de_champ_public, libelle: 'date', type_champ: 'date'),
+ create(:type_de_champ_public, libelle: 'datetime', type_champ: 'datetime')
+ ]
end
context 'and the are used in the template' do
@@ -178,19 +182,19 @@ describe TagsSubstitutionConcern, type: :model do
context "with date de dépôt" do
let(:template) { '--date de dépôt--' }
- it { is_expected.to eq('03/02/2001') }
+ it { is_expected.to eq('03/02/2001') }
end
context "with date de passage en instruction" do
let(:template) { '--date de passage en instruction--' }
- it { is_expected.to eq('06/05/2004') }
+ it { is_expected.to eq('06/05/2004') }
end
context "with date de décision" do
let(:template) { '--date de décision--' }
- it { is_expected.to eq('09/08/2007') }
+ it { is_expected.to eq('09/08/2007') }
end
end
diff --git a/spec/models/dossier_spec.rb b/spec/models/dossier_spec.rb
index c0b468df5..f293c9205 100644
--- a/spec/models/dossier_spec.rb
+++ b/spec/models/dossier_spec.rb
@@ -211,11 +211,12 @@ describe Dossier do
it { expect(subject).to include(:individual_nom) }
it { expect(subject).to include(:individual_prenom) }
it { expect(subject).to include(:individual_birthdate) }
- it { expect(subject.count).to eq(DossierTableExportSerializer.new(dossier).attributes.count +
- dossier.procedure.types_de_champ.count +
- dossier.procedure.types_de_champ_private.count +
- dossier.export_entreprise_data.count)
- }
+ it do
+ expect(subject.count).to eq(DossierTableExportSerializer.new(dossier).attributes.count +
+ dossier.procedure.types_de_champ.count +
+ dossier.procedure.types_de_champ_private.count +
+ dossier.export_entreprise_data.count)
+ end
end
describe '#to_sorted_values' do
@@ -238,11 +239,12 @@ describe Dossier do
it { expect(subject[14]).to be_nil }
it { expect(subject[15]).to be_nil }
it { expect(subject[16]).to be_nil }
- it { expect(subject.count).to eq(DossierTableExportSerializer.new(dossier).attributes.count +
- dossier.procedure.types_de_champ.count +
- dossier.procedure.types_de_champ_private.count +
- dossier.export_entreprise_data.count)
- }
+ it do
+ expect(subject.count).to eq(DossierTableExportSerializer.new(dossier).attributes.count +
+ dossier.procedure.types_de_champ.count +
+ dossier.procedure.types_de_champ_private.count +
+ dossier.export_entreprise_data.count)
+ end
context 'dossier for individual' do
let(:dossier_with_individual) { create(:dossier, :for_individual, user: user, procedure: procedure) }
diff --git a/spec/models/drop_down_list_spec.rb b/spec/models/drop_down_list_spec.rb
index c75c9c74e..b898201db 100644
--- a/spec/models/drop_down_list_spec.rb
+++ b/spec/models/drop_down_list_spec.rb
@@ -4,32 +4,39 @@ describe DropDownList do
let(:dropdownlist) { create :drop_down_list, value: value }
describe '#options' do
- let(:value) { "Cohésion sociale
-Dév.Eco / Emploi
-Cadre de vie / Urb.
-Pilotage / Ingénierie
-"
-}
+ let(:value) do
+ <<~EOS
+ Cohésion sociale
+ Dév.Eco / Emploi
+ Cadre de vie / Urb.
+ Pilotage / Ingénierie
+ EOS
+ end
it { expect(dropdownlist.options).to eq ['', 'Cohésion sociale', 'Dév.Eco / Emploi', 'Cadre de vie / Urb.', 'Pilotage / Ingénierie'] }
context 'when one value is empty' do
- let(:value) { "Cohésion sociale
-Cadre de vie / Urb.
-Pilotage / Ingénierie
-"
-}
+ let(:value) do
+ <<~EOS
+ Cohésion sociale
+ Cadre de vie / Urb.
+ Pilotage / Ingénierie
+ EOS
+ end
it { expect(dropdownlist.options).to eq ['', 'Cohésion sociale', 'Cadre de vie / Urb.', 'Pilotage / Ingénierie'] }
end
end
describe 'disabled_options' do
- let(:value) { "tip
---top--
---troupt--
-ouaich"
-}
+ let(:value) do
+ <<~EOS
+ tip
+ --top--
+ --troupt--
+ ouaich
+ EOS
+ end
it { expect(dropdownlist.disabled_options).to match(['--top--', '--troupt--']) }
end
diff --git a/spec/models/france_connect_information_spec.rb b/spec/models/france_connect_information_spec.rb
index 330fc679c..96413d621 100644
--- a/spec/models/france_connect_information_spec.rb
+++ b/spec/models/france_connect_information_spec.rb
@@ -8,20 +8,4 @@ describe FranceConnectInformation, type: :model do
it { is_expected.to allow_value('mon super projet').for(:france_connect_particulier_id) }
end
end
-
- describe '.find_by_france_connect_particulier' do
- let(:user_info) { {france_connect_particulier_id: '123456'} }
-
- subject { described_class.find_by_france_connect_particulier user_info }
-
- context 'when france_connect_particulier_id is prensent in database' do
- let!(:france_connect_information) { create(:france_connect_information, france_connect_particulier_id: '123456') }
-
- it { is_expected.to eq france_connect_information }
- end
-
- context 'when france_connect_particulier_id is prensent in database' do
- it { is_expected.to eq nil }
- end
- end
end
diff --git a/spec/models/france_connect_particulier_client_spec.rb b/spec/models/france_connect_particulier_client_spec.rb
index 7f3168d13..b73825d7d 100644
--- a/spec/models/france_connect_particulier_client_spec.rb
+++ b/spec/models/france_connect_particulier_client_spec.rb
@@ -2,16 +2,14 @@ require 'spec_helper'
describe FranceConnectParticulierClient do
describe '.initialize' do
- it 'create an openid client' do
- expect(described_class).to be < OpenIDConnect::Client
- end
+ subject { FranceConnectParticulierClient.new(code) }
+
context 'when given code in params' do
let(:code) { 'plop' }
- subject { described_class.new(code: code) }
- it 'set authorisation code' do
- expect_any_instance_of(described_class).to receive(:authorization_code=).with(code)
- described_class.new(code: code)
- end
+
+ before { allow_any_instance_of(FranceConnectParticulierClient).to receive(:authorization_code=) }
+
+ it { is_expected.to have_received(:authorization_code=).with(code) }
end
end
end
diff --git a/spec/models/gestionnaire_spec.rb b/spec/models/gestionnaire_spec.rb
index 206341037..f5425bf79 100644
--- a/spec/models/gestionnaire_spec.rb
+++ b/spec/models/gestionnaire_spec.rb
@@ -94,9 +94,10 @@ describe Gestionnaire, type: :model do
context 'when gestionnaire follow any dossier' do
it { is_expected.to eq 0 }
it { expect(gestionnaire.follows.count).to eq 0 }
- it { expect_any_instance_of(Dossier::ActiveRecord_AssociationRelation).not_to receive(:inject)
+ it do
+ expect_any_instance_of(Dossier::ActiveRecord_AssociationRelation).not_to receive(:inject)
subject
- }
+ end
end
context 'when gestionnaire follow any dossier into the procedure past in params' do
@@ -106,9 +107,10 @@ describe Gestionnaire, type: :model do
it { is_expected.to eq 0 }
it { expect(gestionnaire.follows.count).to eq 1 }
- it { expect_any_instance_of(Dossier::ActiveRecord_AssociationRelation).not_to receive(:inject)
+ it do
+ expect_any_instance_of(Dossier::ActiveRecord_AssociationRelation).not_to receive(:inject)
subject
- }
+ end
end
context 'when gestionnaire follow a dossier with a notification into the procedure past in params' do
@@ -121,9 +123,10 @@ describe Gestionnaire, type: :model do
it { is_expected.to eq 1 }
it { expect(gestionnaire.follows.count).to eq 1 }
- it { expect_any_instance_of(Dossier::ActiveRecord_AssociationRelation).to receive(:inject)
+ it do
+ expect_any_instance_of(Dossier::ActiveRecord_AssociationRelation).to receive(:inject)
subject
- }
+ end
end
end
diff --git a/spec/models/procedure_presentation_spec.rb b/spec/models/procedure_presentation_spec.rb
index f75aa84cc..21c8a6a9e 100644
--- a/spec/models/procedure_presentation_spec.rb
+++ b/spec/models/procedure_presentation_spec.rb
@@ -5,7 +5,8 @@ describe ProcedurePresentation do
ProcedurePresentation.create(
displayed_fields: [
{ "label" => "test1", "table" => "user" }.to_json,
- { "label" => "test2", "table" => "champs" }.to_json],
+ { "label" => "test2", "table" => "champs" }.to_json
+ ],
sort: { "table" => "user","column" => "email","order" => "asc" }.to_json,
filters: { "a-suivre" => [], "suivis" => [{ "label" => "label1", "table" => "table1", "column" => "column1" }] }.to_json
).id
diff --git a/spec/models/procedure_spec.rb b/spec/models/procedure_spec.rb
index e5a1e0e95..c749185e8 100644
--- a/spec/models/procedure_spec.rb
+++ b/spec/models/procedure_spec.rb
@@ -474,15 +474,18 @@ describe Procedure do
subject { create(:procedure) }
before do
- allow(subject).to receive(:fields).and_return([{
- "label" => "label1",
- "table" => "table1",
- "column" => "column1"
- }, {
- "label" => "label2",
- "table" => "table2",
- "column" => "column2"
- }])
+ allow(subject).to receive(:fields).and_return([
+ {
+ "label" => "label1",
+ "table" => "table1",
+ "column" => "column1"
+ },
+ {
+ "label" => "label2",
+ "table" => "table2",
+ "column" => "column2"
+ }
+ ])
end
it { expect(subject.fields_for_select).to eq([["label1", "table1/column1"], ["label2", "table2/column2"]]) }
diff --git a/spec/services/france_connect_service_spec.rb b/spec/services/france_connect_service_spec.rb
index 7374ecb32..c3c1f70b4 100644
--- a/spec/services/france_connect_service_spec.rb
+++ b/spec/services/france_connect_service_spec.rb
@@ -7,7 +7,7 @@ describe FranceConnectService do
let(:given_name) { 'plop1' }
let(:family_name) { 'plop2' }
- let(:birthdate) { 'plop3' }
+ let(:birthdate) { '2012-12-31' }
let(:gender) { 'plop4' }
let(:birthplace) { 'plop5' }
let(:email) { 'plop@emaiL.com' }
@@ -29,15 +29,16 @@ describe FranceConnectService do
subject
end
- it 'returns user informations in a object' do
- expect(subject.given_name).to eq(given_name)
- expect(subject.family_name).to eq(family_name)
- expect(subject.birthdate).to eq(birthdate)
- expect(subject.gender).to eq(gender)
- expect(subject.email).to eq(email)
- expect(subject.phone).to eq(phone)
- expect(subject.birthplace).to eq(birthplace)
- expect(subject.france_connect_particulier_id).to eq(france_connect_particulier_id)
+ it 'returns user informations' do
+ expect(subject).to have_attributes({
+ given_name: given_name,
+ family_name: family_name,
+ birthdate: DateTime.parse(birthdate),
+ birthplace: birthplace,
+ gender: gender,
+ email_france_connect: email,
+ france_connect_particulier_id: france_connect_particulier_id
+ })
end
end
end
diff --git a/spec/services/geojson_service_spec.rb b/spec/services/geojson_service_spec.rb
index eab37088d..8887d27d0 100644
--- a/spec/services/geojson_service_spec.rb
+++ b/spec/services/geojson_service_spec.rb
@@ -3,16 +3,11 @@ require 'spec_helper'
describe GeojsonService do
let(:good_coordinates) {
[
- [5.93536376953125,
- 48.91888968903368],
- [5.93536376953125,
- 49.26780455063753],
- [7.094421386718749,
- 49.26780455063753],
- [7.094421386718749,
- 48.91888968903368],
- [5.93536376953125,
- 48.91888968903368]
+ [5.93536376953125, 48.91888968903368],
+ [5.93536376953125, 49.26780455063753],
+ [7.094421386718749, 49.26780455063753],
+ [7.094421386718749, 48.91888968903368],
+ [5.93536376953125, 48.91888968903368]
]
}
diff --git a/spec/services/render_partial_service_spec.rb b/spec/services/render_partial_service_spec.rb
index a1cc0e4e1..9f0e30533 100644
--- a/spec/services/render_partial_service_spec.rb
+++ b/spec/services/render_partial_service_spec.rb
@@ -8,12 +8,12 @@ describe RenderPartialService do
describe 'navbar' do
subject { service.navbar }
- it { is_expected.to eq 'layouts/navbars/navbar_' + controller.to_s.parameterize + '_' + method.to_s }
+ it { is_expected.to eq "layouts/navbars/navbar_#{controller.to_s.parameterize}_#{method.to_s}" }
end
describe 'left_panel' do
subject { service.left_panel }
- it { is_expected.to eq 'layouts/left_panels/left_panel_' + controller.to_s.parameterize + '_' + method.to_s }
+ it { is_expected.to eq "layouts/left_panels/left_panel_#{controller.to_s.parameterize}_#{method.to_s}" }
end
end
diff --git a/spec/services/types_de_champ_service_spec.rb b/spec/services/types_de_champ_service_spec.rb
index 5ffdc8b88..dbe847cc0 100644
--- a/spec/services/types_de_champ_service_spec.rb
+++ b/spec/services/types_de_champ_service_spec.rb
@@ -48,10 +48,10 @@ describe TypesDeChampService do
it do
is_expected.to match({
- '0' => { 'libelle' => 'a', 'order_place' => '0' },
- '1' => { 'libelle' => 'c', 'order_place' => '1' },
- '2' => { 'libelle' => 'b', 'order_place' => '2' }
- })
+ '0' => { 'libelle' => 'a', 'order_place' => '0' },
+ '1' => { 'libelle' => 'c', 'order_place' => '1' },
+ '2' => { 'libelle' => 'b', 'order_place' => '2' }
+ })
end
end
@@ -66,10 +66,10 @@ describe TypesDeChampService do
it do
is_expected.to match({
- '0' => { 'libelle' => 'b', 'order_place' => '0' },
- '1' => { 'libelle' => 'a', 'order_place' => '1' },
- '2' => { 'libelle' => 'c', 'order_place' => '2' }
- })
+ '0' => { 'libelle' => 'b', 'order_place' => '0' },
+ '1' => { 'libelle' => 'a', 'order_place' => '1' },
+ '2' => { 'libelle' => 'c', 'order_place' => '2' }
+ })
end
end
@@ -85,11 +85,11 @@ describe TypesDeChampService do
it 'does not change the natural order' do
is_expected.to match({
- '0' => { 'libelle' => 'a', 'order_place' => '0' },
- '1' => { 'libelle' => 'b', 'order_place' => '1' },
- '2' => { 'libelle' => 'c', 'order_place' => '2' },
- '3' => { 'libelle' => 'd', 'order_place' => '3' }
- })
+ '0' => { 'libelle' => 'a', 'order_place' => '0' },
+ '1' => { 'libelle' => 'b', 'order_place' => '1' },
+ '2' => { 'libelle' => 'c', 'order_place' => '2' },
+ '3' => { 'libelle' => 'd', 'order_place' => '3' }
+ })
end
end
end
diff --git a/spec/views/users/description/_pieces_justificatives.html.haml_spec.rb b/spec/views/users/description/_pieces_justificatives.html.haml_spec.rb
index 410d63c74..df2b7e6bf 100644
--- a/spec/views/users/description/_pieces_justificatives.html.haml_spec.rb
+++ b/spec/views/users/description/_pieces_justificatives.html.haml_spec.rb
@@ -2,24 +2,26 @@ require 'spec_helper'
describe 'users/description/_pieces_justificatives.html.haml', type: :view do
let!(:procedure) { create(:procedure) }
- let!(:tpj1) {
- create(:type_de_piece_justificative,
+ let!(:tpj1) do
+ create(
+ :type_de_piece_justificative,
procedure: procedure,
libelle: "Première pièce jointe",
description: "Première description",
order_place: 1,
mandatory: true
)
- }
- let!(:tpj2) {
- create(:type_de_piece_justificative,
+ end
+ let!(:tpj2) do
+ create(
+ :type_de_piece_justificative,
procedure: procedure,
libelle: "Seconde pièce jointe",
description: "Seconde description",
order_place: 2,
lien_demarche: "https://www.google.fr"
)
- }
+ end
let!(:dossier) { create(:dossier, :procedure => procedure) }
before do