Merge pull request #1559 from betagouv/rubocop

Rubocop
This commit is contained in:
gregoirenovel 2018-03-06 17:25:31 +01:00 committed by GitHub
commit 89076ba782
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
88 changed files with 351 additions and 228 deletions

View file

@ -8,9 +8,21 @@ AllCops:
Bundler/DuplicatedGem:
Enabled: true
Bundler/InsecureProtocolSource:
Enabled: true
Bundler/OrderedGems:
Enabled: false
Gemspec/DuplicatedAssignment:
Enabled: true
Gemspec/OrderedDependencies:
Enabled: true
Gemspec/RequiredRubyVersion:
Enabled: true
Layout/AccessModifierIndentation:
Enabled: true
@ -34,6 +46,9 @@ Layout/CaseIndentation:
Enabled: true
EnforcedStyle: end
Layout/ClassStructure:
Enabled: false
Layout/ClosingParenthesisIndentation:
Enabled: true
@ -52,6 +67,9 @@ Layout/DotPosition:
Layout/ElseAlignment:
Enabled: true
Layout/EmptyComment:
Enabled: true
Layout/EmptyLineAfterMagicComment:
Enabled: true
@ -64,6 +82,9 @@ Layout/EmptyLines:
Layout/EmptyLinesAroundAccessModifier:
Enabled: true
Layout/EmptyLinesAroundArguments:
Enabled: true
Layout/EmptyLinesAroundBeginBody:
Enabled: true
@ -219,9 +240,6 @@ Layout/SpaceInsideArrayPercentLiteral:
Layout/SpaceInsideBlockBraces:
Enabled: true
Layout/SpaceInsideBrackets:
Enabled: true
Layout/SpaceInsideHashLiteralBraces:
Enabled: true
@ -237,6 +255,9 @@ Layout/SpaceInsidePercentLiteralDelimiters:
Layout/SpaceInsideRangeLiteral:
Enabled: true
Layout/SpaceInsideReferenceBrackets:
Enabled: true
Layout/SpaceInsideStringInterpolation:
Enabled: true
@ -253,52 +274,58 @@ Lint/AmbiguousBlockAssociation:
Enabled: false
Lint/AmbiguousOperator:
Enabled: false
Enabled: true
Lint/AmbiguousRegexpLiteral:
Enabled: false
Enabled: true
Lint/AssignmentInCondition:
Enabled: false
Enabled: true
Lint/BigDecimalNew:
Enabled: true
Lint/BooleanSymbol:
Enabled: true
Lint/CircularArgumentReference:
Enabled: false
Enabled: true
Lint/Debugger:
Enabled: false
Enabled: true
Lint/DeprecatedClassMethods:
Enabled: false
Enabled: true
Lint/DuplicateCaseCondition:
Enabled: false
Enabled: true
Lint/DuplicateMethods:
Enabled: false
Enabled: true
Lint/DuplicatedKey:
Enabled: false
Enabled: true
Lint/EachWithObjectArgument:
Enabled: false
Enabled: true
Lint/ElseLayout:
Enabled: false
Enabled: true
Lint/EmptyEnsure:
Enabled: false
Enabled: true
Lint/EmptyExpression:
Enabled: false
Enabled: true
Lint/EmptyInterpolation:
Enabled: false
Enabled: true
Lint/EmptyWhen:
Enabled: false
Enabled: true
Lint/EndInMethod:
Enabled: false
Enabled: true
Lint/EnsureReturn:
Enabled: false
@ -321,7 +348,10 @@ Lint/IneffectiveAccessModifier:
Lint/InheritException:
Enabled: false
Lint/LiteralInCondition:
Lint/InterpolationCheck:
Enabled: true
Lint/LiteralAsCondition:
Enabled: false
Lint/LiteralInInterpolation:
@ -330,18 +360,30 @@ Lint/LiteralInInterpolation:
Lint/Loop:
Enabled: false
Lint/MissingCopEnableDirective:
Enabled: true
Lint/MultipleCompare:
Enabled: false
Lint/NestedMethodDefinition:
Enabled: false
Lint/NestedPercentLiteral:
Enabled: true
Lint/NextWithoutAccumulator:
Enabled: false
Lint/NonLocalExitFromIterator:
Enabled: false
Lint/NumberConversion:
Enabled: false
Lint/OrderedMagicComments:
Enabled: true
Lint/ParenthesesAsGroupedExpression:
Enabled: false
@ -354,6 +396,15 @@ Lint/PercentSymbolArray:
Lint/RandOne:
Enabled: false
Lint/RedundantWithIndex:
Enabled: true
Lint/RedundantWithObject:
Enabled: true
Lint/RegexpAsCondition:
Enabled: true
Lint/RequireParentheses:
Enabled: false
@ -372,6 +423,9 @@ Lint/SafeNavigationChain:
Lint/ScriptPermission:
Enabled: false
Lint/ShadowedArgument:
Enabled: true
Lint/ShadowedException:
Enabled: false
@ -390,9 +444,15 @@ Lint/UnderscorePrefixedVariableName:
Lint/UnifiedInteger:
Enabled: false
Lint/UnneededDisable:
Lint/UnneededCopDisableDirective:
Enabled: false
Lint/UnneededCopEnableDirective:
Enabled: true
Lint/UnneededRequireStatement:
Enabled: true
Lint/UnneededSplatExpansion:
Enabled: false
@ -477,6 +537,9 @@ Naming/ConstantName:
Naming/FileName:
Enabled: false
Naming/HeredocDelimiterCase:
Enabled: true
Naming/HeredocDelimiterNaming:
Enabled: false
@ -489,6 +552,9 @@ Naming/MethodName:
Naming/PredicateName:
Enabled: false
Naming/UncommunicativeBlockParamName:
Enabled: true
Naming/UncommunicativeMethodParamName:
Enabled: false
@ -567,20 +633,29 @@ Performance/StringReplacement:
Performance/TimesMap:
Enabled: true
Performance/UnfreezeString:
Enabled: true
Performance/UriDefaultParser:
Enabled: true
Rails/ActionFilter:
Enabled: false
Enabled: true
Rails/ActiveRecordAliases:
Enabled: true
Rails/ActiveSupportAliases:
Enabled: false
Enabled: true
Rails/ApplicationJob:
Enabled: false
Enabled: true
Rails/ApplicationRecord:
Enabled: false
Enabled: true
Rails/Blank:
Enabled: false
Enabled: true
Rails/CreateTableWithTimestamps:
Enabled: false
@ -592,28 +667,30 @@ Rails/Delegate:
Enabled: false
Rails/DelegateAllowBlank:
Enabled: false
Enabled: true
Rails/DynamicFindBy:
Enabled: false
Enabled: true
Exclude:
- "spec/features/**/*.rb"
Rails/EnumUniqueness:
Enabled: false
Enabled: true
Rails/EnvironmentComparison:
Enabled: false
Rails/Exit:
Enabled: false
Enabled: true
Rails/FilePath:
Enabled: false
Enabled: true
Rails/FindBy:
Enabled: false
Enabled: true
Rails/FindEach:
Enabled: false
Enabled: true
Rails/HasAndBelongsToMany:
Enabled: false
@ -622,7 +699,7 @@ Rails/HasManyOrHasOneDependent:
Enabled: false
Rails/HttpPositionalArguments:
Enabled: false
Enabled: true
Rails/InverseOf:
Enabled: false
@ -640,10 +717,10 @@ Rails/OutputSafety:
Enabled: true
Rails/PluralizationGrammar:
Enabled: false
Enabled: true
Rails/Presence:
Enabled: false
Enabled: true
Rails/Present:
Enabled: true
@ -651,23 +728,26 @@ Rails/Present:
Rails/ReadWriteAttribute:
Enabled: false
Rails/RedundantReceiverInWithOptions:
Enabled: true
Rails/RelativeDateConstant:
Enabled: false
Enabled: true
Rails/RequestReferer:
Enabled: false
Enabled: true
Rails/ReversibleMigration:
Enabled: false
Rails/SafeNavigation:
Enabled: false
Enabled: true
Rails/SaveBang:
Enabled: false
Rails/ScopeArgs:
Enabled: false
Enabled: true
Rails/SkipsModelValidations:
Enabled: false
@ -676,13 +756,13 @@ Rails/TimeZone:
Enabled: false
Rails/UniqBeforePluck:
Enabled: false
Enabled: true
Rails/UnknownEnv:
Enabled: false
Rails/Validation:
Enabled: false
Enabled: true
Rails:
Enabled: true
@ -691,16 +771,19 @@ RSpec/Focused:
Enabled: true
Security/Eval:
Enabled: false
Enabled: true
Security/JSONLoad:
Enabled: false
Enabled: true
Security/MarshalLoad:
Enabled: false
Enabled: true
Security/Open:
Enabled: true
Security/YAMLLoad:
Enabled: false
Enabled: true
Style/Alias:
Enabled: false
@ -759,6 +842,9 @@ Style/CollectionMethods:
Style/ColonMethodCall:
Enabled: false
Style/ColonMethodDefinition:
Enabled: true
Style/CommandLiteral:
Enabled: false
@ -780,6 +866,9 @@ Style/DateTime:
Style/DefWithParentheses:
Enabled: false
Style/Dir:
Enabled: true
Style/Documentation:
Enabled: false
@ -795,12 +884,21 @@ Style/EachForSimpleLoop:
Style/EachWithObject:
Enabled: false
Style/EmptyBlockParameter:
Enabled: true
Style/EmptyCaseCondition:
Enabled: false
Style/EmptyElse:
Enabled: false
Style/EmptyLambdaParameter:
Enabled: true
Style/EmptyLineAfterGuardClause:
Enabled: false
Style/EmptyLiteral:
Enabled: false
@ -819,6 +917,9 @@ Style/EvalWithLocation:
Style/EvenOdd:
Enabled: false
Style/ExpandPathArguments:
Enabled: true
Style/FlipFlop:
Enabled: false
@ -843,9 +944,6 @@ Style/GuardClause:
Style/HashSyntax:
Enabled: false
Style/HeredocDelimiters:
Enabled: false
Style/IdenticalConditionalBranches:
Enabled: false
@ -897,6 +995,9 @@ Style/MethodDefParentheses:
Style/MethodMissing:
Enabled: false
Style/MinMax:
Enabled: true
Style/MissingElse:
Enabled: false
@ -978,6 +1079,9 @@ Style/OptionalArguments:
Style/ParallelAssignment:
Enabled: false
Style/OrAssignment:
Enabled: true
Style/ParenthesesAroundCondition:
Enabled: false
@ -1005,6 +1109,9 @@ Style/RandomWithOffset:
Style/RedundantBegin:
Enabled: false
Style/RedundantConditional:
Enabled: true
Style/RedundantException:
Enabled: false
@ -1029,6 +1136,9 @@ Style/RescueModifier:
Style/RescueStandardError:
Enabled: false
Style/ReturnNil:
Enabled: false
Style/SafeNavigation:
Enabled: false
@ -1056,6 +1166,12 @@ Style/SpecialGlobalVars:
Style/StabbyLambdaParentheses:
Enabled: false
Style/StderrPuts:
Enabled: true
Style/StringHashKeys:
Enabled: false
Style/StringLiterals:
Enabled: false
@ -1080,6 +1196,15 @@ Style/SymbolProc:
Style/TernaryParentheses:
Enabled: false
Style/TrailingBodyOnClass:
Enabled: true
Style/TrailingBodyOnMethodDefinition:
Enabled: true
Style/TrailingBodyOnModule:
Enabled: true
Style/TrailingCommaInArguments:
Enabled: false
@ -1089,6 +1214,9 @@ Style/TrailingCommaInArrayLiteral:
Style/TrailingCommaInHashLiteral:
Enabled: false
Style/TrailingMethodEndStatement:
Enabled: true
Style/TrailingUnderscoreVariable:
Enabled: false

View file

@ -19,7 +19,7 @@ class Admin::GestionnairesController < AdminController
def create
email = params[:gestionnaire][:email].downcase
@gestionnaire = Gestionnaire.find_by_email(email)
@gestionnaire = Gestionnaire.find_by(email: email)
procedure_id = params[:procedure_id]
if @gestionnaire.nil?

View file

@ -132,7 +132,7 @@ class Admin::ProceduresController < AdminController
return redirect_to admin_procedures_path
end
procedure_path = ProcedurePath.find_by_path(params[:procedure_path])
procedure_path = ProcedurePath.find_by(path: params[:procedure_path])
if procedure_path
if procedure_path.administrateur_id == current_administrateur.id
procedure_path.procedure.archive
@ -154,7 +154,7 @@ class Admin::ProceduresController < AdminController
end
def transfer
admin = Administrateur.find_by_email(params[:email_admin].downcase)
admin = Administrateur.find_by(email: params[:email_admin].downcase)
if admin.nil?
render '/admin/procedures/transfer', formats: 'js', status: 404

View file

@ -13,7 +13,7 @@ class APIController < ApplicationController
end
def current_administrateur
@administrateur ||= Administrateur.find_by_api_token(params[:token])
@administrateur ||= Administrateur.find_by(api_token: params[:token])
end
def default_format_json

View file

@ -9,7 +9,7 @@ class InvitesController < ApplicationController
email = params[:email].downcase
user = User.find_by_email(email)
user = User.find_by(email: email)
invite = class_var.create(dossier: dossier, user: user, email: email, email_sender: email_sender)
if invite.valid?

View file

@ -13,7 +13,7 @@ module NewGestionnaire
@avis_a_donner = gestionnaire_avis.without_answer
@avis_donnes = gestionnaire_avis.with_answer
@statut = params[:statut].present? ? params[:statut] : A_DONNER_STATUS
@statut = params[:statut].presence || A_DONNER_STATUS
@avis = case @statut
when A_DONNER_STATUS

View file

@ -76,7 +76,7 @@ module NewGestionnaire
filtered_sorted_ids = sorted_ids
end
page = params[:page].present? ? params[:page] : 1
page = params[:page].presence || 1
filtered_sorted_paginated_ids = Kaminari
.paginate_array(filtered_sorted_ids)
@ -187,7 +187,7 @@ module NewGestionnaire
private
def statut
@statut ||= params[:statut].present? ? params[:statut] : 'a-suivre'
@statut ||= (params[:statut].presence || 'a-suivre')
end
def procedure

View file

@ -170,7 +170,7 @@ class StatsController < ApplicationController
end
def avis_usage
[3.week.ago, 2.week.ago, 1.week.ago].map do |min_date|
[3.weeks.ago, 2.weeks.ago, 1.week.ago].map do |min_date|
max_date = min_date + 1.week
weekly_dossiers = Dossier.includes(:avis).where(created_at: min_date..max_date).to_a
@ -189,7 +189,7 @@ class StatsController < ApplicationController
end
def avis_average_answer_time
[3.week.ago, 2.week.ago, 1.week.ago].map do |min_date|
[3.weeks.ago, 2.weeks.ago, 1.week.ago].map do |min_date|
max_date = min_date + 1.week
average = Avis.with_answer
@ -203,7 +203,7 @@ class StatsController < ApplicationController
end
def avis_answer_percentages
[3.week.ago, 2.week.ago, 1.week.ago].map do |min_date|
[3.weeks.ago, 2.weeks.ago, 1.week.ago].map do |min_date|
max_date = min_date + 1.week
weekly_avis = Avis.where(created_at: min_date..max_date)
@ -222,7 +222,7 @@ class StatsController < ApplicationController
end
def motivation_usage_dossier
[3.week.ago, 2.week.ago, 1.week.ago].map do |date|
[3.weeks.ago, 2.weeks.ago, 1.week.ago].map do |date|
min_date = date.beginning_of_week
max_date = date.end_of_week
@ -241,7 +241,7 @@ class StatsController < ApplicationController
end
def motivation_usage_procedure
[3.week.ago, 2.week.ago, 1.week.ago].map do |date|
[3.weeks.ago, 2.weeks.ago, 1.week.ago].map do |date|
min_date = date.beginning_of_week
max_date = date.end_of_week

View file

@ -88,7 +88,7 @@ class Users::DescriptionController < UsersController
flash.notice = 'Nouveaux fichiers envoyés' if flash.alert.nil?
end
return redirect_to users_dossiers_invite_path(id: current_user.invites.find_by_dossier_id(@dossier.id).id) if invite
return redirect_to users_dossiers_invite_path(id: current_user.invites.find_by(dossier_id: @dossier.id).id) if invite
redirect_to users_dossier_recapitulatif_path
end

View file

@ -1,7 +1,7 @@
class Users::Dossiers::InvitesController < UsersController
def authenticate_user!
session["user_return_to"] = request.fullpath
return redirect_to new_user_registration_path(user_email: params[:email]) if params[:email].present? && User.find_by_email(params[:email]).nil?
return redirect_to new_user_registration_path(user_email: params[:email]) if params[:email].present? && User.find_by(email: params[:email]).nil?
super
end

View file

@ -78,7 +78,9 @@ class Users::SessionsController < Sessions::SessionsController
end
def try_to_authenticate(klass, remember_me = false)
if resource = klass.find_for_database_authentication(email: params[:user][:email])
resource = klass.find_for_database_authentication(email: params[:user][:email])
if resource.present?
if resource.valid_password?(params[:user][:password])
resource.remember_me = remember_me
sign_in resource

View file

@ -2,7 +2,7 @@ class EntrepriseDecorator < Draper::Decorator
delegate_all
def raison_sociale_or_name
raison_sociale.blank? ? "#{nom} #{prenom}" : raison_sociale
raison_sociale.presence || "#{nom} #{prenom}"
end
def effectif

View file

@ -7,7 +7,9 @@ class FileSizeValidator < ActiveModel::EachValidator
RESERVED_OPTIONS = [:minimum, :maximum, :within, :is, :tokenizer, :too_short, :too_long]
def initialize(options)
if range = (options.delete(:in) || options.delete(:within))
range = options.delete(:in) || options.delete(:within)
if range.present?
raise ArgumentError, ":in and :within must be a Range" if !range.is_a?(Range)
options[:minimum], options[:maximum] = range.begin, range.end
options[:maximum] -= 1 if range.exclude_end?

View file

@ -1,4 +1,4 @@
class Administrateur < ActiveRecord::Base
class Administrateur < ApplicationRecord
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable

View file

@ -1,4 +1,4 @@
class Administration < ActiveRecord::Base
class Administration < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :rememberable, :trackable, :validatable, :omniauthable, omniauth_providers: [:github]

View file

@ -1,4 +1,4 @@
class AssignTo < ActiveRecord::Base
class AssignTo < ApplicationRecord
belongs_to :procedure
belongs_to :gestionnaire
has_one :procedure_presentation, dependent: :destroy

View file

@ -1,4 +1,4 @@
class Cadastre < ActiveRecord::Base
class Cadastre < ApplicationRecord
belongs_to :dossier, touch: true
def geometry

View file

@ -1,4 +1,4 @@
class Cerfa < ActiveRecord::Base
class Cerfa < ApplicationRecord
belongs_to :dossier, touch: true
belongs_to :user

View file

@ -1,4 +1,4 @@
class Champ < ActiveRecord::Base
class Champ < ApplicationRecord
self.inheritance_column = :_type_disabled
belongs_to :dossier, touch: true

View file

@ -1,4 +1,4 @@
class Commentaire < ActiveRecord::Base
class Commentaire < ApplicationRecord
belongs_to :dossier, touch: true
belongs_to :champ
belongs_to :piece_justificative
@ -6,7 +6,7 @@ class Commentaire < ActiveRecord::Base
mount_uploader :file, CommentaireFileUploader
validates :file, file_size: { maximum: 20.megabytes, message: "La taille du fichier doit être inférieure à 20 Mo" }
validate :is_virus_free?
validates_presence_of :body, message: "Votre message ne peut être vide"
validates :body, presence: { message: "Votre message ne peut être vide" }
default_scope { order(created_at: :asc) }
scope :updated_since?, -> (date) { where('commentaires.updated_at > ?', date) }
@ -31,19 +31,12 @@ class Commentaire < ActiveRecord::Base
dossier_user_email = dossier.user.email
invited_users_emails = dossier.invites_user.pluck(:email).to_a
case email
when I18n.t("dynamics.contact_email")
# The commentaire is a copy of an automated notification email
# we sent to a user, so do nothing
when dossier_user_email, *invited_users_emails
# A user or an inved user posted a commentaire,
# do nothing, the notification system will properly
else
# A gestionnaire posted a commentaire,
# we need to notify the user
# - If the email is the contact email, the commentaire is a copy
# of an automated notification email we sent to a user, so do nothing.
# - If a user or an invited user posted a commentaire, do nothing,
# the notification system will properly
# - Otherwise, a gestionnaire posted a commentaire, we need to notify the user
if !email.in?([I18n.t("dynamics.contact_email"), dossier_user_email, *invited_users_emails])
notify_user
end
end

View file

@ -1,4 +1,4 @@
class Dossier < ActiveRecord::Base
class Dossier < ApplicationRecord
enum state: {
brouillon: 'brouillon',
en_construction: 'en_construction',

View file

@ -1,4 +1,4 @@
class DropDownList < ActiveRecord::Base
class DropDownList < ApplicationRecord
belongs_to :type_de_champ
def options

View file

@ -1,10 +1,10 @@
class Entreprise < ActiveRecord::Base
class Entreprise < ApplicationRecord
belongs_to :dossier
has_one :etablissement, dependent: :destroy
has_one :rna_information, dependent: :destroy
validates_presence_of :siren
validates_uniqueness_of :dossier_id
validates :siren, presence: true
validates :dossier_id, uniqueness: true
accepts_nested_attributes_for :rna_information

View file

@ -1,4 +1,4 @@
class Etablissement < ActiveRecord::Base
class Etablissement < ApplicationRecord
belongs_to :dossier
belongs_to :entreprise
@ -7,7 +7,7 @@ class Etablissement < ActiveRecord::Base
accepts_nested_attributes_for :exercices
accepts_nested_attributes_for :entreprise
validates_uniqueness_of :dossier_id
validates :dossier_id, uniqueness: true
def geo_adresse
[numero_voie, type_voie, nom_voie, complement_adresse, code_postal, localite].join(' ')

View file

@ -1,4 +1,4 @@
class Exercice < ActiveRecord::Base
class Exercice < ApplicationRecord
belongs_to :etablissement
validates :ca, presence: true, allow_blank: false, allow_nil: false

View file

@ -1,8 +1,8 @@
class Follow < ActiveRecord::Base
class Follow < ApplicationRecord
belongs_to :gestionnaire
belongs_to :dossier
validates_uniqueness_of :gestionnaire_id, :scope => :dossier_id
validates :gestionnaire_id, uniqueness: { scope: :dossier_id }
before_create :set_default_date

View file

@ -1,4 +1,4 @@
class FranceConnectInformation < ActiveRecord::Base
class FranceConnectInformation < ApplicationRecord
belongs_to :user
validates :france_connect_particulier_id, presence: true, allow_blank: false, allow_nil: false

View file

@ -1,4 +1,4 @@
class Gestionnaire < ActiveRecord::Base
class Gestionnaire < ApplicationRecord
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable

View file

@ -1,7 +1,7 @@
class Individual < ActiveRecord::Base
class Individual < ApplicationRecord
belongs_to :dossier
validates_uniqueness_of :dossier_id
validates :dossier_id, uniqueness: true
validates :gender, presence: true, allow_nil: false, on: :update
validates :nom, presence: true, allow_blank: false, allow_nil: false, on: :update
validates :prenom, presence: true, allow_blank: false, allow_nil: false, on: :update

View file

@ -1,9 +1,9 @@
class Invite < ActiveRecord::Base
class Invite < ApplicationRecord
belongs_to :dossier
belongs_to :user
validates_presence_of :email
validates_uniqueness_of :email, :scope => :dossier_id
validates :email, presence: true
validates :email, uniqueness: { scope: :dossier_id }
validates :email, email_format: true
end

View file

@ -1,4 +1,4 @@
class ModuleAPICarto < ActiveRecord::Base
class ModuleAPICarto < ApplicationRecord
belongs_to :procedure
validates :use_api_carto, presence: true, allow_blank: true, allow_nil: false

View file

@ -1,4 +1,4 @@
class PieceJustificative < ActiveRecord::Base
class PieceJustificative < ApplicationRecord
belongs_to :dossier, touch: true
belongs_to :type_de_piece_justificative
has_one :commentaire

View file

@ -1,4 +1,4 @@
class Procedure < ActiveRecord::Base
class Procedure < ApplicationRecord
has_many :types_de_piece_justificative, -> { order "order_place ASC" }, dependent: :destroy
has_many :types_de_champ, -> { public_only }, dependent: :destroy
has_many :types_de_champ_private, -> { private_only }, class_name: 'TypeDeChamp', dependent: :destroy

View file

@ -1,4 +1,4 @@
class ProcedurePath < ActiveRecord::Base
class ProcedurePath < ApplicationRecord
validates :path, format: { with: /\A[a-z0-9_\-]{3,50}\z/ }, presence: true, allow_blank: false, allow_nil: false
validates :administrateur_id, presence: true, allow_blank: false, allow_nil: false
validates :procedure_id, presence: true, allow_blank: false, allow_nil: false

View file

@ -1,4 +1,4 @@
class ProcedurePresentation < ActiveRecord::Base
class ProcedurePresentation < ApplicationRecord
belongs_to :assign_to
def displayed_fields

View file

@ -1,4 +1,4 @@
class QuartierPrioritaire < ActiveRecord::Base
class QuartierPrioritaire < ApplicationRecord
belongs_to :dossier, touch: true
def geometry

View file

@ -1,4 +1,4 @@
class RNAInformation < ActiveRecord::Base
class RNAInformation < ApplicationRecord
belongs_to :entreprise
validates :association_id, presence: true, allow_blank: false, allow_nil: false

View file

@ -1,7 +1,7 @@
# See:
# - https://robots.thoughtbot.com/implementing-multi-table-full-text-search-with-postgres
# - http://calebthompson.io/talks/search.html
class Search < ActiveRecord::Base
class Search < ApplicationRecord
# :nodoc:
#
# Englobs a search result (actually a collection of Search objects) so it acts

View file

@ -4,7 +4,7 @@ class Siret
attr_accessor :siret
validates_presence_of :siret
validates :siret, presence: true
validates :siret, siret_format: true
before_validation :remove_whitespace

View file

@ -1,4 +1,4 @@
class TypeDeChamp < ActiveRecord::Base
class TypeDeChamp < ApplicationRecord
self.inheritance_column = :_type_disabled
enum type_champs: {

View file

@ -1,4 +1,4 @@
class TypeDePieceJustificative < ActiveRecord::Base
class TypeDePieceJustificative < ApplicationRecord
has_many :pieces_justificatives, dependent: :destroy
belongs_to :procedure

View file

@ -1,4 +1,4 @@
class User < ActiveRecord::Base
class User < ApplicationRecord
enum loged_in_with_france_connect: {
particulier: 'particulier',
entreprise: 'entreprise'
@ -21,7 +21,7 @@ class User < ActiveRecord::Base
include CredentialsSyncableConcern
def self.find_for_france_connect email, siret
user = User.find_by_email(email)
user = User.find_by(email: email)
if user.nil?
return User.create(email: email, password: Devise.friendly_token[0, 20], siret: siret)
else

View file

@ -1,5 +1,5 @@
class StagingAuthService
CONFIG_PATH = Rails.root.join("config/basic_auth.yml")
CONFIG_PATH = Rails.root.join("config", "basic_auth.yml")
def self.authenticate(username, password)
if enabled?
@ -14,7 +14,7 @@ class StagingAuthService
end
def self.config
if File.exists?(CONFIG_PATH)
if File.exist?(CONFIG_PATH)
YAML.safe_load(File.read(CONFIG_PATH)).symbolize_keys
else
{}

View file

@ -1,6 +1,6 @@
class AttestationTemplateLogoUploader < BaseUploader
def root
File.join(Rails.root, 'public')
Rails.root.join("public")
end
# Choose what kind of storage to use for this uploader:

View file

@ -1,6 +1,6 @@
class AttestationTemplateSignatureUploader < BaseUploader
def root
File.join(Rails.root, 'public')
Rails.root.join("public")
end
# Choose what kind of storage to use for this uploader:

View file

@ -1,6 +1,6 @@
class AttestationUploader < BaseUploader
def root
File.join(Rails.root, 'public')
Rails.root.join("public")
end
# Choose what kind of storage to use for this uploader:

View file

@ -1,6 +1,6 @@
class CommentaireFileUploader < BaseUploader
def root
File.join(Rails.root, 'public')
Rails.root.join("public")
end
if Features.remote_storage

View file

@ -1,7 +1,7 @@
require 'securerandom'
class LocalDownloader
BASE_PATH_DISK = File.join(Rails.root, "public/downloads/")
BASE_PATH_DISK = Rails.root.join("public", "downloads")
def initialize(filename, filename_suffix = '')
@filename = filename.to_s

View file

@ -1,6 +1,6 @@
class ProcedureLogoUploader < BaseUploader
def root
File.join(Rails.root, "public")
Rails.root.join("public")
end
# Choose what kind of storage to use for this uploader:

View file

@ -2,7 +2,7 @@ Apipie.configure do |config|
config.app_name = "API demarches-simplifiees.fr"
config.api_base_url = "/api/v1"
config.doc_base_url = "/docs"
config.api_controllers_matcher = File.join(Rails.root, "app", "controllers","api","v1", "**","*.rb")
config.api_controllers_matcher = Rails.root.join("app", "controllers"," api", "v1", "**", "*.rb")
config.markup = Apipie::Markup::Markdown.new
config.default_version = '1.0'
config.validate = false

View file

@ -1,9 +1,9 @@
require_relative 'features'
if Rails.env.test?
Fog.credentials_path = Rails.root.join('config/fog_credentials.test.yml')
Fog.credentials_path = Rails.root.join('config', 'fog_credentials.test.yml')
else
Fog.credentials_path = Rails.root.join('config/fog_credentials.yml')
Fog.credentials_path = Rails.root.join('config', 'fog_credentials.yml')
end
CarrierWave.configure do |config|
@ -20,7 +20,7 @@ CarrierWave.configure do |config|
# they will not be available for public (non-authenticated) downloading
config.root = Rails.root
config.cache_dir = "#{Rails.root}/uploads"
config.cache_dir = Rails.root.join("uploads")
config.fog_public = true

View file

@ -11,7 +11,7 @@ FRANCE_CONNECT = if Rails.env.test?
}
}
else
fc_config_file_path = "#{Rails.root}/config/france_connect.yml"
fc_config_file_path = Rails.root.join("config", "france_connect.yml")
# FIXME: with a yaml with a { particulier: {} } structure
config_hash = YAML.safe_load(File.read(fc_config_file_path))

View file

@ -1,8 +1,8 @@
class UpdateModuleAPICarto < ActiveRecord::Migration
class Procedure < ActiveRecord::Base
class Procedure < ApplicationRecord
end
class ModuleAPICarto < ActiveRecord::Base
class ModuleAPICarto < ApplicationRecord
end
def up

View file

@ -1,8 +1,8 @@
class CreateFranceConnectInformation < ActiveRecord::Migration
class User < ActiveRecord::Base
class User < ApplicationRecord
end
class FranceConnectInformation < ActiveRecord::Base
class FranceConnectInformation < ApplicationRecord
end
def up

View file

@ -1,5 +1,5 @@
class DBremovePieceJustificativeEmpty < ActiveRecord::Migration
class PieceJustificative < ActiveRecord::Base
class PieceJustificative < ApplicationRecord
end
def change

View file

@ -1,13 +1,13 @@
class PieceJustificativeHaveUser < ActiveRecord::Migration
class PieceJustificative < ActiveRecord::Base
class PieceJustificative < ApplicationRecord
belongs_to :dossier
end
class Dossier < ActiveRecord::Base
class Dossier < ApplicationRecord
belongs_to :user
end
class User < ActiveRecord::Base
class User < ApplicationRecord
end
def change

View file

@ -1,13 +1,13 @@
class CerfaHaveUser < ActiveRecord::Migration
class Cerfa < ActiveRecord::Base
class Cerfa < ApplicationRecord
belongs_to :dossier
end
class Dossier < ActiveRecord::Base
class Dossier < ApplicationRecord
belongs_to :user
end
class User < ActiveRecord::Base
class User < ApplicationRecord
end
def change

View file

@ -1,8 +1,8 @@
class AdminHasAndBelongGestionnaire < ActiveRecord::Migration
class Gestionnaire < ActiveRecord::Base
class Gestionnaire < ApplicationRecord
end
class AdministrateursGestionnaire < ActiveRecord::Base
class AdministrateursGestionnaire < ApplicationRecord
end
def up

View file

@ -1,20 +1,20 @@
class GestionnaireIsAssignToProcedure < ActiveRecord::Migration
class AssignTo < ActiveRecord::Base
class AssignTo < ApplicationRecord
belongs_to :gestionnaire
belongs_to :procedure
end
class Gestionnaire < ActiveRecord::Base
class Gestionnaire < ApplicationRecord
has_and_belongs_to_many :administrateurs
has_many :procedures, through: :assign_to
end
class Administrateur < ActiveRecord::Base
class Administrateur < ApplicationRecord
has_and_belongs_to_many :gestionnaires
has_many :procedures
end
class Procedure < ActiveRecord::Base
class Procedure < ApplicationRecord
belongs_to :administrateur
has_many :gestionnaires, through: :assign_to
end

View file

@ -1,8 +1,8 @@
class SetOriginalFilenameForUploaders < ActiveRecord::Migration
class PieceJustificative < ActiveRecord::Base
class PieceJustificative < ApplicationRecord
end
class Cerfa < ActiveRecord::Base
class Cerfa < ApplicationRecord
end
def change

View file

@ -1,5 +1,5 @@
class AddProcedureStatus < ActiveRecord::Migration
class Procedure < ActiveRecord::Base
class Procedure < ApplicationRecord
end
def change

View file

@ -1,14 +1,14 @@
class DeleteDefaultDescriptionToDossier < ActiveRecord::Migration
class Dossier < ActiveRecord::Base
class Dossier < ApplicationRecord
end
class Champ < ActiveRecord::Base
class Champ < ApplicationRecord
end
class Procedure < ActiveRecord::Base
class Procedure < ApplicationRecord
end
class TypeDeChamp < ActiveRecord::Base
class TypeDeChamp < ApplicationRecord
end
def up

View file

@ -1,5 +1,5 @@
class ConvertAllDatetimeToDateOnDatabase < ActiveRecord::Migration
class TypeDeChamp < ActiveRecord::Base
class TypeDeChamp < ApplicationRecord
end
def change

View file

@ -1,5 +1,5 @@
class AddProcedurePathMappingTable < ActiveRecord::Migration
class ProcedurePath < ActiveRecord::Base
class ProcedurePath < ApplicationRecord
end
def change

View file

@ -1,5 +1,5 @@
class BuildDefaultPreferenceListDossier < ActiveRecord::Migration
class Gestionnaire < ActiveRecord::Base
class Gestionnaire < ApplicationRecord
def build_default_preferences_list_dossier
PreferenceListDossier.available_columns.each do |table|
table.second.each do |column|
@ -47,7 +47,7 @@ class BuildDefaultPreferenceListDossier < ActiveRecord::Migration
end
end
class PreferenceListDossier < ActiveRecord::Base
class PreferenceListDossier < ApplicationRecord
def self.available_columns
{
dossier: columns_dossier,

View file

@ -1,5 +1,5 @@
class FixDefaultTypeOnTypeDeChampTable < ActiveRecord::Migration
class TypeDeChamp < ActiveRecord::Base
class TypeDeChamp < ApplicationRecord
end
def up

View file

@ -1,9 +1,9 @@
class AddTypeAttrInChampTable < ActiveRecord::Migration
class TypeDeChamp < ActiveRecord::Base
class TypeDeChamp < ApplicationRecord
has_many :champs
end
class Champ < ActiveRecord::Base
class Champ < ApplicationRecord
belongs_to :type_de_champ
end

View file

@ -1,5 +1,5 @@
class DeleteValueOfFilterProcedure < ActiveRecord::Migration
class Gestionnaire < ActiveRecord::Base
class Gestionnaire < ApplicationRecord
end
def change

View file

@ -1,9 +1,9 @@
class InitiatedAllReceivedMailForProcedure < ActiveRecord::Migration
class Procedure < ActiveRecord::Base
class Procedure < ApplicationRecord
has_one :mail_received
end
class MailTemplate < ActiveRecord::Base
class MailTemplate < ApplicationRecord
end
class ::MailReceived < MailTemplate

View file

@ -1,21 +1,21 @@
class BuildDefaultPrefListDossierProcedure < ActiveRecord::Migration
class Gestionnaire < ActiveRecord::Base
class Gestionnaire < ApplicationRecord
has_many :assign_to, dependent: :destroy
has_many :procedures, through: :assign_to
has_many :preference_list_dossiers
end
class PreferenceListDossier < ActiveRecord::Base
class PreferenceListDossier < ApplicationRecord
belongs_to :gestionnaire
belongs_to :procedure
end
class AssignTo < ActiveRecord::Base
class AssignTo < ApplicationRecord
belongs_to :procedure
belongs_to :gestionnaire
end
class Procedure < ActiveRecord::Base
class Procedure < ApplicationRecord
has_many :gestionnaires, through: :assign_to
has_many :preference_list_dossiers
end

View file

@ -1,5 +1,5 @@
class ChangeEmptytoNilInPreferenceListDossierTable < ActiveRecord::Migration
class PreferenceListDossier < ActiveRecord::Base
class PreferenceListDossier < ApplicationRecord
end
def change

View file

@ -1,5 +1,5 @@
class FixTypeDeChampHeaderSectionWithMandatoryTrue < ActiveRecord::Migration
class TypeDeChamp < ActiveRecord::Base
class TypeDeChamp < ApplicationRecord
end
def change

View file

@ -1,5 +1,5 @@
class PurgeDraftDossier < ActiveRecord::Migration
class Dossier < ActiveRecord::Base
class Dossier < ApplicationRecord
BROUILLON = %w(draft)
def brouillon?
@ -7,11 +7,11 @@ class PurgeDraftDossier < ActiveRecord::Migration
end
end
class Commentaire < ActiveRecord::Base
class Commentaire < ApplicationRecord
belongs_to :dossier
end
class Cerfa < ActiveRecord::Base
class Cerfa < ApplicationRecord
belongs_to :dossier
belongs_to :user
end

View file

@ -1,5 +1,5 @@
class ResetAllPreferenceListDossier < ActiveRecord::Migration
class PreferenceListDossier < ActiveRecord::Base
class PreferenceListDossier < ApplicationRecord
belongs_to :gestionnaire
belongs_to :procedure
@ -91,7 +91,7 @@ class ResetAllPreferenceListDossier < ActiveRecord::Migration
end
end
class Gestionnaire < ActiveRecord::Base
class Gestionnaire < ApplicationRecord
has_many :assign_to, dependent: :destroy
has_many :procedures, through: :assign_to
@ -145,7 +145,7 @@ class ResetAllPreferenceListDossier < ActiveRecord::Migration
end
end
class Procedure < ActiveRecord::Base
class Procedure < ApplicationRecord
has_many :assign_to, dependent: :destroy
has_many :gestionnaires, through: :assign_to
end

View file

@ -1,5 +1,5 @@
class CreatePreferenceSmartListingPage < ActiveRecord::Migration
class Gestionnaire < ActiveRecord::Base
class Gestionnaire < ApplicationRecord
has_one :preference_smart_listing_page, dependent: :destroy
def build_default_preferences_smart_listing_page
@ -7,7 +7,7 @@ class CreatePreferenceSmartListingPage < ActiveRecord::Migration
end
end
class PreferenceSmartListingPage < ActiveRecord::Base
class PreferenceSmartListingPage < ApplicationRecord
belongs_to :gestionnaire
belongs_to :procedure

View file

@ -19,7 +19,7 @@ namespace :'2017_07_26_clean_birthdate_on_individual' do
puts "cleaning #{i.birthdate}"
new_date = Date.strptime(i.birthdate, "%d/%m/%y")
if new_date.year > 2017
new_date = new_date - 100.year
new_date = new_date - 100.years
end
i.update(birthdate: new_date.iso8601)
end

View file

@ -41,7 +41,7 @@ namespace :'2017_10_30_copy_commentaire_piece_justificative_to_file' do
end
commentaire.save
if !commentaire.file.present?
if commentaire.file.blank?
puts "Failed to save file for commentaire #{commentaire.id}"
end
end

View file

@ -105,7 +105,7 @@ namespace :cloudstorage do
@cont.objects_detail.each { |object, details|
last_modified = DateTime.parse(details[:last_modified])
@cont.delete_object(object) if last_modified.utc <= (Time.now - 2.year).utc
@cont.delete_object(object) if last_modified.utc <= (Time.now - 2.years).utc
}
end
end

View file

@ -112,7 +112,7 @@ describe Admin::GestionnairesController, type: :controller do
end
context 'when an other admin will add the same email' do
let(:gestionnaire) { Gestionnaire.find_by_email(email) }
let(:gestionnaire) { Gestionnaire.find_by(email: email) }
before do
create :gestionnaire, email: email, administrateurs: [admin]
@ -133,7 +133,7 @@ describe Admin::GestionnairesController, type: :controller do
context 'when an other admin will add the same email with some uppercase in it' do
let(:email) { 'Test@Plop.com' }
let(:gestionnaire) { Gestionnaire.find_by_email(email.downcase) }
let(:gestionnaire) { Gestionnaire.find_by(email: email.downcase) }
before do
create :gestionnaire, email: email, administrateurs: [admin]

View file

@ -9,7 +9,7 @@ describe Admin::ProfileController, type: :controller do
describe 'POST #renew_api_token' do
subject { post :renew_api_token }
it { expect{ subject }.to change{ administrateur.reload.api_token } }
it { expect{ subject }.to change { administrateur.reload.api_token } }
it { subject; expect(response.status).to redirect_to(admin_profile_path) }
end

View file

@ -333,9 +333,9 @@ describe API::V1::DossiersController do
it { expect(subject[:created_at]).not_to be_nil }
if Features.remote_storage
it { expect(subject[:content_url]).to match /^https:\/\/storage.apientreprise.fr\/tps_dev\/cerfa-.*\.pdf$/ }
it { expect(subject[:content_url]).to match(/^https:\/\/storage.apientreprise.fr\/tps_dev\/cerfa-.*\.pdf$/) }
else
it { expect(subject[:content_url]).to match /^http:\/\/.*downloads.*_CERFA\.pdf$/ }
it { expect(subject[:content_url]).to match(/^http:\/\/.*downloads.*_CERFA\.pdf$/) }
end
describe 'user' do

View file

@ -254,9 +254,9 @@ describe NewGestionnaire::ProceduresController, type: :controller do
describe 'statut' do
let!(:a_suivre__dossier) { Timecop.freeze(1.day.ago){ create(:dossier, procedure: procedure, state: 'en_instruction') } }
let!(:new_followed_dossier) { Timecop.freeze(2.day.ago){ create(:dossier, procedure: procedure, state: 'en_instruction') } }
let!(:termine_dossier) { Timecop.freeze(3.day.ago){ create(:dossier, procedure: procedure, state: 'accepte') } }
let!(:archived_dossier) { Timecop.freeze(4.day.ago){ create(:dossier, procedure: procedure, state: 'en_instruction', archived: true) } }
let!(:new_followed_dossier) { Timecop.freeze(2.days.ago){ create(:dossier, procedure: procedure, state: 'en_instruction') } }
let!(:termine_dossier) { Timecop.freeze(3.days.ago){ create(:dossier, procedure: procedure, state: 'accepte') } }
let!(:archived_dossier) { Timecop.freeze(4.days.ago){ create(:dossier, procedure: procedure, state: 'en_instruction', archived: true) } }
before do
gestionnaire.followed_dossiers << new_followed_dossier

View file

@ -45,7 +45,7 @@ describe StatsController, type: :controller do
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]
[I18n.l(1.day.ago.beginning_of_month, format: "%B %Y"), 2]
])
end
end
@ -72,7 +72,7 @@ describe StatsController, type: :controller do
it do
expect(subject).to eq({
2.month.ago.beginning_of_month => 2,
2.months.ago.beginning_of_month => 2,
1.month.ago.beginning_of_month => 4,
1.hour.ago.beginning_of_month => 5
})
@ -86,7 +86,7 @@ describe StatsController, type: :controller do
it do
expect(subject).to eq({
2.month.ago.beginning_of_month => 2,
2.months.ago.beginning_of_month => 2,
1.month.ago.beginning_of_month => 4
})
end
@ -151,22 +151,22 @@ describe StatsController, type: :controller do
dossier_p1_b = FactoryBot.create(:dossier,
:procedure => procedure_1,
:en_construction_at => 2.months.ago.beginning_of_month,
:processed_at => 2.months.ago.beginning_of_month + 1.days)
:processed_at => 2.months.ago.beginning_of_month + 1.day)
dossier_p1_c = FactoryBot.create(:dossier,
:procedure => procedure_1,
:en_construction_at => 1.months.ago.beginning_of_month,
:processed_at => 1.months.ago.beginning_of_month + 5.days)
:en_construction_at => 1.month.ago.beginning_of_month,
:processed_at => 1.month.ago.beginning_of_month + 5.days)
dossier_p2_a = FactoryBot.create(:dossier,
:procedure => procedure_2,
:en_construction_at => 2.month.ago.beginning_of_month,
:processed_at => 2.month.ago.beginning_of_month + 4.days)
:en_construction_at => 2.months.ago.beginning_of_month,
:processed_at => 2.months.ago.beginning_of_month + 4.days)
# Write directly in the DB to avoid the before_validation hook
Dossier.update_all(state: "accepte")
@expected_hash = {
"#{2.months.ago.beginning_of_month}" => 3.0,
"#{1.months.ago.beginning_of_month}" => 5.0
"#{1.month.ago.beginning_of_month}" => 5.0
}
end
@ -204,21 +204,21 @@ describe StatsController, type: :controller do
:processed_at => 2.months.ago.beginning_of_month + 1.day)
dossier_p1_c = FactoryBot.create(:dossier,
:procedure => procedure_1,
:created_at => 1.months.ago.beginning_of_month,
:en_construction_at => 1.months.ago.beginning_of_month + 50.minutes,
:processed_at => 1.months.ago.beginning_of_month + 1.day)
:created_at => 1.month.ago.beginning_of_month,
:en_construction_at => 1.month.ago.beginning_of_month + 50.minutes,
:processed_at => 1.month.ago.beginning_of_month + 1.day)
dossier_p2_a = FactoryBot.create(:dossier,
:procedure => procedure_2,
:created_at => 2.month.ago.beginning_of_month,
:en_construction_at => 2.month.ago.beginning_of_month + 80.minutes,
:processed_at => 2.month.ago.beginning_of_month + 1.day)
:created_at => 2.months.ago.beginning_of_month,
:en_construction_at => 2.months.ago.beginning_of_month + 80.minutes,
:processed_at => 2.months.ago.beginning_of_month + 1.day)
# Write directly in the DB to avoid the before_validation hook
Dossier.update_all(state: "accepte")
@expected_hash = {
"#{2.months.ago.beginning_of_month}" => 30.0,
"#{1.months.ago.beginning_of_month}" => 50.0
"#{1.month.ago.beginning_of_month}" => 50.0
}
end
@ -239,7 +239,7 @@ describe StatsController, type: :controller do
subject { StatsController.new.send(:avis_usage) }
it { expect(subject).to match([[3.week.ago.to_i, 0], [2.week.ago.to_i, 0], [1.week.ago.to_i, 33.33]]) }
it { expect(subject).to match([[3.weeks.ago.to_i, 0], [2.weeks.ago.to_i, 0], [1.week.ago.to_i, 33.33]]) }
end
describe "#avis_average_answer_time" do
@ -251,10 +251,10 @@ describe StatsController, type: :controller do
create(:avis, created_at: 1.week.ago + 2.days)
# 2 weeks ago
create(:avis, answer: "voila ma réponse", created_at: 2.week.ago + 1.day, updated_at: 2.week.ago + 2.days) # 1 day
create(:avis, answer: "voila ma réponse2", created_at: 2.week.ago + 3.days, updated_at: 1.week.ago + 6.days) # 10 days
create(:avis, answer: "voila ma réponse2", created_at: 2.week.ago + 2.days, updated_at: 1.week.ago + 6.days) # 11 days
create(:avis, created_at: 2.week.ago + 1.day, updated_at: 2.week.ago + 2.days)
create(:avis, answer: "voila ma réponse", created_at: 2.weeks.ago + 1.day, updated_at: 2.weeks.ago + 2.days) # 1 day
create(:avis, answer: "voila ma réponse2", created_at: 2.weeks.ago + 3.days, updated_at: 1.week.ago + 6.days) # 10 days
create(:avis, answer: "voila ma réponse2", created_at: 2.weeks.ago + 2.days, updated_at: 1.week.ago + 6.days) # 11 days
create(:avis, created_at: 2.weeks.ago + 1.day, updated_at: 2.weeks.ago + 2.days)
# 3 weeks ago
create(:avis, answer: "voila ma réponse2", created_at: 3.weeks.ago + 1.day, updated_at: 3.weeks.ago + 2.days) # 1 day
@ -267,8 +267,8 @@ describe StatsController, type: :controller do
it { expect(subject.count).to eq(3) }
it { is_expected.to include [1.week.ago.to_i, 1.0] }
it { is_expected.to include [2.week.ago.to_i, 7.33] }
it { is_expected.to include [3.week.ago.to_i, 9.5] }
it { is_expected.to include [2.weeks.ago.to_i, 7.33] }
it { is_expected.to include [3.weeks.ago.to_i, 9.5] }
end
describe '#avis_answer_percentages' do
@ -281,7 +281,7 @@ describe StatsController, type: :controller do
before { Timecop.freeze(Time.now) }
after { Timecop.return }
it { is_expected.to match [[3.week.ago.to_i, 0], [2.week.ago.to_i, 0], [1.week.ago.to_i, 66.67]] }
it { is_expected.to match [[3.weeks.ago.to_i, 0], [2.weeks.ago.to_i, 0], [1.week.ago.to_i, 66.67]] }
end
describe '#motivation_usage_dossier' do
@ -294,7 +294,7 @@ describe StatsController, type: :controller do
subject { StatsController.new.send(:motivation_usage_dossier) }
it { expect(subject).to match([[I18n.l(3.week.ago.end_of_week, format: '%d/%m/%Y'), 0], [I18n.l(2.week.ago.end_of_week, format: '%d/%m/%Y'), 0], [I18n.l(1.week.ago.end_of_week, format: '%d/%m/%Y'), 33.33]]) }
it { expect(subject).to match([[I18n.l(3.weeks.ago.end_of_week, format: '%d/%m/%Y'), 0], [I18n.l(2.weeks.ago.end_of_week, format: '%d/%m/%Y'), 0], [I18n.l(1.week.ago.end_of_week, format: '%d/%m/%Y'), 33.33]]) }
end
describe '#motivation_usage_procedure' do
@ -308,6 +308,6 @@ describe StatsController, type: :controller do
subject { StatsController.new.send(:motivation_usage_procedure) }
it { expect(subject).to match([[I18n.l(3.week.ago.end_of_week, format: '%d/%m/%Y'), 0], [I18n.l(2.week.ago.end_of_week, format: '%d/%m/%Y'), 0], [I18n.l(1.week.ago.end_of_week, format: '%d/%m/%Y'), 33.33]]) }
it { expect(subject).to match([[I18n.l(3.weeks.ago.end_of_week, format: '%d/%m/%Y'), 0], [I18n.l(2.weeks.ago.end_of_week, format: '%d/%m/%Y'), 0], [I18n.l(1.week.ago.end_of_week, format: '%d/%m/%Y'), 33.33]]) }
end
end

View file

@ -376,7 +376,7 @@ shared_examples 'description_controller_spec' do
it { expect(dossier.pieces_justificatives.size).to eq 2 }
it { expect(flash[:notice]).to be_present }
it { is_expected.to redirect_to users_dossiers_invite_path(id: guest.invites.find_by_dossier_id(dossier.id).id) }
it { is_expected.to redirect_to users_dossiers_invite_path(id: guest.invites.find_by(dossier_id: dossier.id).id) }
end
end
@ -396,7 +396,7 @@ shared_examples 'description_controller_spec' do
it { expect(dossier.pieces_justificatives.size).to eq 4 }
it { expect(flash[:notice]).to be_present }
it { is_expected.to redirect_to users_dossiers_invite_path(id: guest.invites.find_by_dossier_id(dossier.id).id) }
it { is_expected.to redirect_to users_dossiers_invite_path(id: guest.invites.find_by(dossier_id: dossier.id).id) }
end
end
@ -413,7 +413,7 @@ shared_examples 'description_controller_spec' do
it { expect(dossier.pieces_justificatives.size).to eq 1 }
it { expect(flash[:alert]).to be_present }
it { is_expected.to redirect_to users_dossiers_invite_path(id: guest.invites.find_by_dossier_id(dossier.id).id) }
it { is_expected.to redirect_to users_dossiers_invite_path(id: guest.invites.find_by(dossier_id: dossier.id).id) }
end
end
end

View file

@ -85,7 +85,7 @@ FactoryBot.define do
after(:create) do |dossier, _evaluator|
dossier.state = 'en_instruction'
dossier.en_construction_at = dossier.created_at + 1.minute
dossier.created_at = dossier.created_at + 2.minute
dossier.created_at = dossier.created_at + 2.minutes
dossier.save!
end
end

View file

@ -31,9 +31,7 @@ RSpec.describe AutoArchiveProcedureJob, type: :job do
before do
subject
(1..9).each do |i|
eval "dossier#{i}.reload"
end
[dossier1, dossier2, dossier3, dossier4, dossier5, dossier6, dossier7, dossier8, dossier9].each(&:reload)
procedure_hier.reload
procedure_aujourdhui.reload

View file

@ -245,9 +245,9 @@ describe Procedure do
it { expect(procedure.archived_at).to eq(nil) }
it { expect(procedure.published_at).to eq(now) }
it { expect(ProcedurePath.find_by_path("example-path")).to be }
it { expect(ProcedurePath.find_by_path("example-path").procedure).to eq(procedure) }
it { expect(ProcedurePath.find_by_path("example-path").administrateur).to eq(procedure.administrateur) }
it { expect(ProcedurePath.find_by(path: "example-path")).to be }
it { expect(ProcedurePath.find_by(path: "example-path").procedure).to eq(procedure) }
it { expect(ProcedurePath.find_by(path: "example-path").administrateur).to eq(procedure.administrateur) }
end
describe "#brouillon?" do

View file

@ -52,8 +52,8 @@ Capybara.default_max_wait_time = 1
# Requires supporting ruby files with custom matchers and macros, etc,
# in spec/support/ and its subdirectories.
Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f }
Dir[Rails.root.join('spec/factories/**/*.rb')].each { |f| require f }
Dir[Rails.root.join('spec', 'support', '**', '*.rb')].each { |f| require f }
Dir[Rails.root.join('spec', 'factories', '**', '*.rb')].each { |f| require f }
# Checks for pending migrations before tests are run.
# If you are not using ActiveRecord, you can remove this line.