Merge branch 'develop' of ssh://37.187.249.111:2200/opt/git/tps into develop

This commit is contained in:
Tanguy PATTE 2015-09-24 11:17:29 +02:00
commit 40310da378
27 changed files with 679 additions and 164 deletions

View file

@ -3,8 +3,48 @@ require 'spec_helper'
describe DossierDecorator do
let(:dossier) { create(:dossier, :with_user) }
subject { dossier.decorate }
describe 'last_update' do
subject { Timecop.freeze(Time.new(2015, 12, 24, 14, 10)) { super().last_update } }
it { is_expected.to eq('24/12/2015 14:10') }
end
describe 'state_fr' do
subject{ super().state_fr }
it 'draft is brouillon' do
dossier.draft!
expect(subject).to eq('Brouillon')
end
it 'proposed is propose' do
dossier.proposed!
expect(subject).to eq('Proposé')
end
it 'reply is repondu' do
dossier.reply!
expect(subject).to eq('Répondu')
end
it 'updated is mis à jour' do
dossier.updated!
expect(subject).to eq('Mis à jour')
end
it 'confirmed is valide' do
dossier.confirmed!
expect(subject).to eq('Validé')
end
it 'deposited is dépose' do
dossier.deposited!
expect(subject).to eq('Déposé')
end
it 'processed is traité' do
dossier.processed!
expect(subject).to eq('Traité')
end
end
end

View file

@ -1,6 +1,7 @@
FactoryGirl.define do
factory :dossier do
nom_projet "Demande de subvention dans le cadre d'accompagnement d'enfant à l'étranger"
state 'draft'
trait :with_entreprise do
after(:build) do |dossier, _evaluator|
etablissement = create(:etablissement)

View file

@ -36,13 +36,5 @@ feature 'add commentaire on backoffice' do
scenario 'Champs de texte' do
expect(page).to have_selector('textarea[id=texte_commentaire][name=texte_commentaire]')
end
scenario 'Champs email' do
expect(page).to have_selector('input[id=email_commentaire][name=email_commentaire]')
end
scenario 'Champs email est prérempli' do
expect(page).to have_selector("input[id=email_commentaire][value='#{gestionnaire.email}']")
end
end
end

View file

@ -82,17 +82,17 @@ feature 'Admin/Dossier#Show Page' do
# end
# end
# end
scenario 'la carte est bien présente' do
expect(page).to have_selector('#map_qp')
end
scenario 'la page des sources CSS de l\'API cart est chargée' do
expect(page).to have_selector('#sources_CSS_api_carto')
end
scenario 'la page des sources JS backend de l\'API cart est chargée' do
expect(page).to have_selector('#sources_JS_api_carto_backend')
end
#
# scenario 'la carte est bien présente' do
# expect(page).to have_selector('#map_qp')
# end
#
# scenario 'la page des sources CSS de l\'API cart est chargée' do
# expect(page).to have_selector('#sources_CSS_api_carto')
# end
#
# scenario 'la page des sources JS backend de l\'API cart est chargée' do
# expect(page).to have_selector('#sources_JS_api_carto_backend')
# end
end
end

View file

@ -1,7 +1,7 @@
require 'spec_helper'
feature '_Commentaires_Flux Recapitulatif#Show Page' do
let(:dossier) { create(:dossier, :with_user) }
let(:dossier) { create(:dossier, :with_user, :with_procedure) }
let(:dossier_id) { dossier.id }
let(:email_commentaire) { 'mon_mail_de_commentaire@test.com' }
let!(:commentaire) { create(:commentaire, dossier: dossier, email: email_commentaire, body: 'ma super description') }
@ -34,13 +34,5 @@ feature '_Commentaires_Flux Recapitulatif#Show Page' do
scenario 'Champs de texte' do
expect(page).to have_selector('textarea[id=texte_commentaire][name=texte_commentaire]')
end
scenario 'Champs email' do
expect(page).to have_selector('input[id=email_commentaire][name=email_commentaire]')
end
scenario 'Champs email est prérempli' do
expect(page).to have_content(email_commentaire)
end
end
end

View file

@ -1,7 +1,7 @@
require 'spec_helper'
feature 'Recapitulatif#Show Page' do
let(:dossier) { create(:dossier, :with_user) }
let(:dossier) { create(:dossier, :with_user, :with_procedure) }
let(:dossier_id) { dossier.id }
before do
@ -27,11 +27,11 @@ feature 'Recapitulatif#Show Page' do
context 'les liens de modifications' do
context 'lien description' do
scenario 'le lien vers description est présent' do
expect(page).to have_css('#modif_description')
expect(page).to have_css('#maj_infos')
end
scenario 'le lien vers description est correct' do
expect(page).to have_selector("a[id=modif_description][href='/dossiers/#{dossier_id}/description?back_url=recapitulatif']")
expect(page).to have_selector("a[id=maj_infos][href='/dossiers/#{dossier_id}/description?back_url=recapitulatif']")
end
end
end

View file

@ -117,5 +117,258 @@ describe Dossier do
end
end
end
#TODO revoir le nommage
describe '#next_step' do
let(:dossier) { create(:dossier) }
let(:role) { 'user' }
let(:action) { 'propose' }
subject { dossier.next_step! role, action }
context 'when action is not valid' do
let(:action) { 'test' }
it { expect{ subject }.to raise_error('action is not valid') }
end
context 'when role is not valid' do
let(:role) { 'test' }
it { expect{ subject }.to raise_error('role is not valid') }
end
context 'when dossier is at state draft' do
before do
dossier.draft!
end
context 'when user is connected' do
let(:role) { 'user' }
context 'when he updates dossier informations' do
let(:action) {'update'}
it { is_expected.to eq('draft') }
end
context 'when he posts a comment' do
let(:action) {'comment'}
it { is_expected.to eq('draft') }
end
context 'when he proposes a dossier' do
let(:action) { 'propose' }
it { is_expected.to eq('proposed') }
end
end
end
context 'when dossier is at state proposed' do
before do
dossier.proposed!
end
context 'when user is connect' do
let(:role) { 'user' }
context 'when is update dossier informations' do
let(:action) { 'update' }
it {is_expected.to eq('proposed')}
end
context 'when is post a comment' do
let(:action) { 'comment' }
it {is_expected.to eq('proposed')}
end
end
context 'when gestionnaire is connect' do
let(:role) { 'gestionnaire' }
context 'when is post a comment' do
let(:action) { 'comment' }
it { is_expected.to eq('reply')}
end
context 'when is confirmed the dossier' do
let(:action) { 'confirme' }
it {is_expected.to eq('confirmed')}
end
end
end
context 'when dossier is at state reply' do
before do
dossier.reply!
end
context 'when user is connect' do
let(:role) { 'user' }
context 'when is post a comment' do
let(:action) { 'comment' }
it { is_expected.to eq('updated') }
end
context 'when is updated dossier informations' do
let(:action) { 'update' }
it {
is_expected.to eq('updated')
}
end
end
context 'when gestionnaire is connect' do
let(:role) { 'gestionnaire' }
context 'when is post a comment' do
let(:action) { 'comment' }
it { is_expected.to eq('reply')}
end
context 'when is confirmed the dossier' do
let(:action) { 'confirme' }
it {is_expected.to eq('confirmed')}
end
end
end
context 'when dossier is at state updated' do
before do
dossier.updated!
end
context 'when user is connect' do
let(:role) { 'user' }
context 'when is post a comment' do
let(:action) { 'comment' }
it { is_expected.to eq('updated')}
end
context 'when is updated dossier informations' do
let(:action) { 'update' }
it { is_expected.to eq('updated')}
end
end
context 'when gestionnaire is connect' do
let(:role) { 'gestionnaire' }
context 'when is post a comment' do
let(:action) { 'comment' }
it { is_expected.to eq('reply')}
end
context 'when is confirmed the dossier' do
let(:action) { 'confirme' }
it {is_expected.to eq('confirmed')}
end
end
end
context 'when dossier is at state confirmed' do
before do
dossier.confirmed!
end
context 'when user is connect' do
let(:role) { 'user' }
context 'when is post a comment' do
let(:action) { 'comment' }
it { is_expected.to eq('confirmed') }
end
context 'when is deposed the dossier' do
let(:action) { 'depose' }
it { is_expected.to eq('deposited') }
end
end
context 'when gestionnaire is connect' do
let(:role) { 'gestionnaire' }
context 'when is post a comment' do
let(:action) { 'comment' }
it { is_expected.to eq('confirmed')}
end
end
end
context 'when dossier is at state deposited' do
before do
dossier.deposited!
end
context 'when user is connect' do
let(:role) { 'user' }
context 'when is post a comment' do
let(:action) { 'comment' }
it { is_expected.to eq('deposited') }
end
end
context 'when gestionnaire is connect' do
let(:role) { 'gestionnaire' }
context 'when is post a comment' do
let(:action) { 'comment' }
it {is_expected.to eq('deposited')}
end
context 'when is processed the dossier' do
let(:action) { 'process' }
it {is_expected.to eq('processed')}
end
end
end
context 'when dossier is at state processed' do
before do
dossier.processed!
end
context 'when user is connect' do
let(:role) { 'user' }
context 'when is post a comment' do
let(:action) { 'comment' }
it { is_expected.to eq('processed')}
end
end
context 'when gestionnaire is connect' do
let(:role) { 'gestionnaire' }
context 'when is post a comment' do
let(:action) { 'comment' }
it { is_expected.to eq('processed')}
end
end
end
end
end
end

View file

@ -65,6 +65,7 @@ RSpec.configure do |config|
config.order = 'random'
config.include Devise::TestHelpers, type: :view
config.include Devise::TestHelpers, type: :controller
config.include FactoryGirl::Syntax::Methods

View file

@ -1 +1,14 @@
# TODO à écrire
require 'spec_helper'
describe 'dossiers/_infos_dossier.html.haml', type: :view do
let(:dossier) { create(:dossier, :with_entreprise, :with_procedure) }
let(:maj_infos) { 'Mettre à jour les informations' }
let(:proposer) { 'Soumettre mon dossier' }
before do
assign(:dossier, dossier.decorate)
assign(:commentaires, dossier.commentaires)
render
end
end

View file

@ -0,0 +1,39 @@
require 'spec_helper'
describe 'users/recapitulatif/_commentaires_flux.html.haml', type: :view do
let(:dossier) { create(:dossier, :with_procedure) }
let(:dossier_id) { dossier.id }
let(:email_commentaire) { 'mon_mail_de_commentaire@test.com' }
let!(:commentaire) { create(:commentaire, dossier: dossier, email: email_commentaire, body: 'ma super description') }
let(:body) { 'Commentaire de test' }
before do
assign(:dossier, dossier.decorate)
assign(:commentaires, dossier.commentaires.all.decorate)
render
end
context 'Affichage du flux de commentaire' do
it 'l\'email du contact est présent' do
expect(rendered).to have_selector('span[id=email_contact]')
end
it 'la date du commentaire est présent' do
expect(rendered).to have_selector('span[id=created_at]')
end
it 'le corps du commentaire est présent' do
expect(rendered).to have_selector('div[class=description][id=body]')
end
end
context 'Affichage du formulaire de commentaire' do
it 'Le formulaire envoie vers /dossiers/:dossier_id/commentaire en #POST' do
expect(rendered).to have_selector("form[action='/users/dossiers/#{dossier_id}/commentaire'][method=post]")
end
it 'Champs de texte' do
expect(rendered).to have_selector('textarea[id=texte_commentaire][name=texte_commentaire]')
end
end
end