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
@rescue_redirect = 'error_siret'
@etablissement = Etablissement.new(SIADE::EtablissementAdapter.new(params[:siret]).to_params)
@entreprise = Entreprise.new(SIADE::EntrepriseAdapter.new(params[:siret][0..-6]).to_params)

View file

@ -1,43 +1,37 @@
class EntrepriseDecorator < Draper::Decorator
delegate_all
def raison_sociale_or_name
raison_sociale.nil? ? nom + '' + prenom : raison_sociale
raison_sociale.nil? ? nom + ' ' + prenom : raison_sociale
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
when '00'
'0 salarié'
when '01'
'1 ou 2 salariés'
when '02'
'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
def pretty_capital_social
h.number_to_currency(capital_social, delimiter: ' ', unit: '€', format: "%n %u")
end
def pretty_date_creation
Time.at(date_creation).strftime('%d-%m-%Y')
end
end

View file

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

View file

@ -1,23 +1,12 @@
%h2{style:'margin-bottom:16px'}
='Récapitulatif de vos informations'
.container
%h2 Récapitulatif de vos informations
%div{class:'row', style:'margin-left:5%'}
= 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.
%div.row
= render partial: 'infos_entreprise'
%br
= f.submit 'Etape suivante', class: "btn btn btn-info", style: 'float:right'
= form_tag(url_for({controller: :dossiers, action: :update, id: @dossier.id}), class: 'form-inline', method: 'PUT') do
%br
%div
= form_for @dossier do |f|
%label{ style:'font-weight:normal' }
%input{type:'checkbox', name: 'autorisation_donnees', id: '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."
= 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
= render partial: 'layouts/etape_suivante'
= f.submit 'Etape suivante', class: "btn btn btn-info", style: 'float:right', id: 'etape_suivante'

View file

@ -3,8 +3,7 @@ require 'spec_helper'
RSpec.describe DossiersController, type: :controller do
let(:dossier) { create(:dossier, :with_entreprise) }
let (:dossier_id) { dossier.id }
let (:bad_dossier_id) { Dossier.count + 10 }
# let (:autorisation_donnees){'on'}
let (:bad_dossier_id) { 999999999999 }
let (:siren) { dossier.siren }
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
scenario 'la checkbox d\'information est présente' do
expect(page).to have_selector('input[type=checkbox][id=autorisation_donnees][name=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]')
expect(page).to have_css('#dossier_autorisation_donnees')
end
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
scenario 'les informations de l\'entreprise sont présents' do
expect(page).to have_content ('SIRET');
expect(page).to have_content('Siret')
end
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

View file

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