use entreprise decorator

add test to entreprise decorator
refacto views
This commit is contained in:
Tanguy PATTE 2015-08-14 18:07:40 +02:00
parent 107b11d510
commit a86ecb69de
8 changed files with 124 additions and 94 deletions

View file

@ -10,7 +10,6 @@ class DossiersController < ApplicationController
def create def create
@rescue_redirect = 'error_siret' @rescue_redirect = 'error_siret'
@etablissement = Etablissement.new(SIADE::EtablissementAdapter.new(params[:siret]).to_params) @etablissement = Etablissement.new(SIADE::EtablissementAdapter.new(params[:siret]).to_params)
@entreprise = Entreprise.new(SIADE::EntrepriseAdapter.new(params[:siret][0..-6]).to_params) @entreprise = Entreprise.new(SIADE::EntrepriseAdapter.new(params[:siret][0..-6]).to_params)

View file

@ -1,43 +1,37 @@
class EntrepriseDecorator < Draper::Decorator class EntrepriseDecorator < Draper::Decorator
delegate_all delegate_all
def raison_sociale_or_name def raison_sociale_or_name
raison_sociale.nil? ? nom + '' + prenom : raison_sociale raison_sociale.nil? ? nom + ' ' + prenom : raison_sociale
end end
def code_effectif_entreprise_libelle def effectif
{
'NN' => "Unités non employeuses (pas de salarié au cours de l'année de référence et pas d'effectif au 31/12).",
'00' => "0 salarié (n'ayant pas d'effectif au 31/12 mais ayant employé des salariés au cours de l'année de référence)",
'01' => '1 ou 2 salariés',
'02' => '3 à 5 salariés',
'03' => '6 à 9 salariés',
'11' => '10 à 19 salariés',
'12' => '20 à 49 salariés',
'21' => '50 à 99 salariés',
'22' => '100 à 199 salariés',
'31' => '200 à 249 salariés',
'32' => '250 à 499 salariés',
'41' => '500 à 999 salariés',
'42' => '1 000 à 1 999 salariés',
'51' => '2 000 à 4 999 salariés',
'52' => '5 000 à 9 999 salariés',
'53' => '10 000 salariés et plus'
}[code_effectif_entreprise]
end
case code_effectif_entreprise.to_s def pretty_capital_social
when '00' h.number_to_currency(capital_social, delimiter: ' ', unit: '€', format: "%n %u")
'0 salarié' end
when '01'
'1 ou 2 salariés' def pretty_date_creation
when '02' Time.at(date_creation).strftime('%d-%m-%Y')
'3 à 5 salariés'
when '03'
'6 à 9 salariés'
when '11'
'10 à 19 salariés'
when '12'
'20 à 49 salariés'
when '21'
'50 à 99 salariés'
when '22'
'100 à 199 salariés'
when '31'
'200 à 249 salariés'
when '32'
'250 à 499 salariés'
when '41'
'500 à 999 salariés'
when '42'
'1 000 à 1 999 salariés'
when '51'
'2 000 à 4 999 salariés'
when '52'
'5 000 à 9 999 salariés'
when '53'
'10 000 salariés et plus'
end
end end
end end

View file

@ -1,38 +1,32 @@
%h4 .col-md-12
=@entreprise.raison_sociale_or_name %h4
= @entreprise.raison_sociale_or_name
%div{class:'row', id: 'infos_entreprise'} #infos_entreprise
%div{class:'col-lg-6 col-md-6', style:'margin-left:2%'} .col-lg-6.col-md-6
%h5 %dl.dl-horizontal
='SIRET : '
%span.text-success
=@etablissement.siret
%h5 %dt Siret :
=@entreprise.forme_juridique %dd.text-success= @etablissement.siret
%h5 %dt Forme juridique :
=@etablissement.libelle_naf %dd= @entreprise.forme_juridique
%h5 %dt libelle naf :
='Date création : ' %dd= @etablissement.libelle_naf
%span
=Time.at(@entreprise.date_creation).strftime "%d-%m-%Y"
%br %dt Date de création :
%h5 %dd= Time.at(@entreprise.date_creation).strftime "%d-%m-%Y"
='Code effectif entreprise : '
%span
=@entreprise.code_effectif_entreprise_libelle
%h5 %dt Effectife entreprise :
='Capital social : ' %dd= @entreprise.effectif
%span
=number_to_currency(@entreprise.capital_social, delimiter: ' ', unit: '€', format: "%n %u")
%dt Capital social :
%dd= @entreprise.pretty_capital_social
%div.col-lg-6.col-md-6{style:'margin-left:-2%'} %div.col-lg-6.col-md-6{style:'margin-left:-2%'}
%h5 %dl.dl-horizontal
='Adresse : ' %dt
%div{style:'margin-left:2%'} Adresse :
=@etablissement.adresse.gsub(/[\n]/, '<br>').html_safe %dd
%address= @etablissement.adresse.gsub(/[\n]/, '<br>').html_safe

View file

@ -1,23 +1,12 @@
%h2{style:'margin-bottom:16px'} .container
='Récapitulatif de vos informations' %h2 Récapitulatif de vos informations
%div{class:'row', style:'margin-left:5%'} %div.row
= render partial: 'infos_entreprise' = render partial: 'infos_entreprise'
= form_for @dossier do |f|
%label{ style:'font-weight:normal' }
= f.check_box :autorisation_donnees
J'autorise les organismes publics à vérifier les informations de mon entreprise auprès des administrations concernées. Ces informations resteront strictement confidentielles.
%br %br
= f.submit 'Etape suivante', class: "btn btn btn-info", style: 'float:right' = form_for @dossier do |f|
= form_tag(url_for({controller: :dossiers, action: :update, id: @dossier.id}), class: 'form-inline', method: 'PUT') do
%br
%div
%label{ style:'font-weight:normal' } %label{ style:'font-weight:normal' }
%input{type:'checkbox', name: 'autorisation_donnees', id: 'autorisation_donnees'} = f.check_box :autorisation_donnees
= "J'autorise les organismes publics à vérifier les informations de mon entreprise auprès des administrations concernées. Ces informations resteront strictement confidentielles." J'autorise les organismes publics à vérifier les informations de mon entreprise auprès des administrations concernées. Ces informations resteront strictement confidentielles.
%br %br
%br = f.submit 'Etape suivante', class: "btn btn btn-info", style: 'float:right', id: 'etape_suivante'
= render partial: 'layouts/etape_suivante'

View file

@ -3,8 +3,7 @@ require 'spec_helper'
RSpec.describe DossiersController, type: :controller do RSpec.describe DossiersController, type: :controller do
let(:dossier) { create(:dossier, :with_entreprise) } let(:dossier) { create(:dossier, :with_entreprise) }
let (:dossier_id) { dossier.id } let (:dossier_id) { dossier.id }
let (:bad_dossier_id) { Dossier.count + 10 } let (:bad_dossier_id) { 999999999999 }
# let (:autorisation_donnees){'on'}
let (:siren) { dossier.siren } let (:siren) { dossier.siren }
let (:siret) { dossier.siret } let (:siret) { dossier.siret }

View file

@ -0,0 +1,59 @@
require 'spec_helper'
describe EntrepriseDecorator do
let(:code_effectif) { '00' }
let(:raison_sociale) { 'GRTGaz' }
let(:nom) { 'mon nom' }
let(:prenom) { 'mon prenom' }
let(:entreprise_params) {
{
capital_social: 123_000,
code_effectif_entreprise: code_effectif,
raison_sociale: raison_sociale,
nom: nom,
prenom: prenom
}
}
let(:entreprise) { create(:entreprise, entreprise_params) }
subject { entreprise.decorate }
describe '#raison_sociale_or_name' do
subject { super().raison_sociale_or_name}
context 'when raison_sociale exist' do
let(:raison_sociale) { 'ma super raison_sociale' }
it 'display raison_sociale' do
expect(subject).to eq(raison_sociale)
end
end
context 'when raison_sociale is nil' do
let(:raison_sociale) { nil }
it 'display nom and prenom' do
expect(subject).to eq(nom + ' ' + prenom)
end
end
end
describe '#effectif' do
subject { super().effectif }
context 'when code_effectif is 00' do
let(:code_effectif) { '01' }
it { is_expected.to eq('1 ou 2 salariés') }
end
context 'when code_effectif is 32' do
let(:code_effectif) { '32' }
it { is_expected.to eq('250 à 499 salariés') }
end
end
describe '#pretty_capital_social' do
it 'pretty display capital_social' do
expect(subject.pretty_capital_social).to eq('123 000.00 €')
end
end
describe '#pretty_date_creation' do
it 'pretty print date creation' do
expect(subject.pretty_date_creation).to eq('05-11-2001')
end
end
end

View file

@ -15,23 +15,19 @@ feature 'Dossier#Show Page' do
end end
scenario 'la checkbox d\'information est présente' do scenario 'la checkbox d\'information est présente' do
expect(page).to have_selector('input[type=checkbox][id=autorisation_donnees][name=autorisation_donnees]') expect(page).to have_css('#dossier_autorisation_donnees')
end
scenario 'la checkbox est décochée par défault' do
expect(page).to_not have_selector('input[type=checkbox][id=autorisation_donnees][name=autorisation_donnees][value=on]')
end end
scenario 'le texte d\'information des droits est correct' do scenario 'le texte d\'information des droits est correct' do
expect(page).to have_content ("J'autorise les organismes publics à vérifier les informations de mon entreprise auprès des administrations concernées. Ces informations resteront strictement confidentielles.") expect(page).to have_content("J'autorise les organismes publics à vérifier les informations de mon entreprise auprès des administrations concernées. Ces informations resteront strictement confidentielles.")
end end
scenario 'les informations de l\'entreprise sont présents' do scenario 'les informations de l\'entreprise sont présents' do
expect(page).to have_content ('SIRET'); expect(page).to have_content('Siret')
end end
scenario 'le bouton "Etape suivante" est présent' do scenario 'le bouton "Etape suivante" est présent' do
expect(page).to have_selector ('#etape_suivante'); expect(page).to have_selector('#etape_suivante')
end end
end end
end end

View file

@ -10,6 +10,6 @@ describe 'dossiers/show.html.haml', type: :view do
render render
end end
it 'have autorisation_donnees check box' do it 'have autorisation_donnees check box' do
expect(rendered).to have_css('#autorisation_donnees') expect(rendered).to have_css('#dossier_autorisation_donnees')
end end
end end