Merge branch 'develop' into staging
This commit is contained in:
commit
3dfac3d6f2
7 changed files with 56 additions and 5 deletions
|
@ -1,10 +1,17 @@
|
||||||
class CommentairesController < ApplicationController
|
class CommentairesController < ApplicationController
|
||||||
def create
|
def create
|
||||||
@commentaire = Commentaire.new
|
@commentaire = Commentaire.new
|
||||||
@commentaire.email = params['email_commentaire']
|
|
||||||
@commentaire.body = params['texte_commentaire']
|
|
||||||
@commentaire.dossier = Dossier.find(params['dossier_id'])
|
@commentaire.dossier = Dossier.find(params['dossier_id'])
|
||||||
|
|
||||||
|
if is_gestionnaire?
|
||||||
|
@commentaire.email = current_gestionnaire.email
|
||||||
|
@commentaire.dossier.next_step! 'gestionnaire', 'comment'
|
||||||
|
else #is_user
|
||||||
|
@commentaire.email = current_user.email
|
||||||
|
@commentaire.dossier.next_step! 'user', 'comment'
|
||||||
|
end
|
||||||
|
|
||||||
|
@commentaire.body = params['texte_commentaire']
|
||||||
@commentaire.save
|
@commentaire.save
|
||||||
|
|
||||||
if is_gestionnaire?
|
if is_gestionnaire?
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
class Users::DossiersController < UsersController
|
class Users::DossiersController < UsersController
|
||||||
before_action :authenticate_user!
|
before_action :authenticate_user!
|
||||||
def index
|
def index
|
||||||
@dossiers = current_user.dossiers.decorate
|
@dossiers = current_user.dossiers.order(updated_at: 'DESC').decorate
|
||||||
end
|
end
|
||||||
def show
|
def show
|
||||||
|
|
||||||
|
|
|
@ -76,7 +76,7 @@ set :rbenv_path, "/usr/local/rbenv/bin/rbenv"
|
||||||
# Optional settings:
|
# Optional settings:
|
||||||
# set :user, 'foobar' # Username in the server to SSH to.
|
# set :user, 'foobar' # Username in the server to SSH to.
|
||||||
# set :port, '30000' # SSH port number.
|
# set :port, '30000' # SSH port number.
|
||||||
# set :forward_agent, true # SSH forward_agent.
|
set :forward_agent, true # SSH forward_agent.
|
||||||
|
|
||||||
# This task is the environment that is loaded for most commands, such as
|
# This task is the environment that is loaded for most commands, such as
|
||||||
# `mina deploy` or `mina rake`.
|
# `mina deploy` or `mina rake`.
|
||||||
|
|
|
@ -16,5 +16,23 @@ describe Backoffice::CommentairesController, type: :controller do
|
||||||
expect(response).to redirect_to("/backoffice/dossiers/#{dossier_id}")
|
expect(response).to redirect_to("/backoffice/dossiers/#{dossier_id}")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe 'change dossier state after post a comment' do
|
||||||
|
context 'gestionnaire is connected' do
|
||||||
|
context 'when dossier is at state updated' do
|
||||||
|
before do
|
||||||
|
sign_in create(:gestionnaire)
|
||||||
|
dossier.updated!
|
||||||
|
|
||||||
|
post :create, dossier_id: dossier_id, texte_commentaire: texte_commentaire
|
||||||
|
dossier.reload
|
||||||
|
end
|
||||||
|
|
||||||
|
subject { dossier.state }
|
||||||
|
|
||||||
|
it {is_expected.to eq('reply')}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -10,9 +10,27 @@ describe Users::CommentairesController, type: :controller do
|
||||||
context 'création correct d\'un commentaire' do
|
context 'création correct d\'un commentaire' do
|
||||||
it 'depuis la page récapitulatif' do
|
it 'depuis la page récapitulatif' do
|
||||||
sign_in dossier.user
|
sign_in dossier.user
|
||||||
post :create, dossier_id: dossier_id, email_commentaire: email_commentaire, texte_commentaire: texte_commentaire
|
post :create, dossier_id: dossier_id, texte_commentaire: texte_commentaire
|
||||||
expect(response).to redirect_to("/users/dossiers/#{dossier_id}/recapitulatif")
|
expect(response).to redirect_to("/users/dossiers/#{dossier_id}/recapitulatif")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe 'change dossier state after post a comment' do
|
||||||
|
context 'when user is connected' do
|
||||||
|
context 'when dossier is at state reply' do
|
||||||
|
before do
|
||||||
|
sign_in dossier.user
|
||||||
|
dossier.reply!
|
||||||
|
|
||||||
|
post :create, dossier_id: dossier_id, texte_commentaire: texte_commentaire
|
||||||
|
dossier.reload
|
||||||
|
end
|
||||||
|
|
||||||
|
subject { dossier.state }
|
||||||
|
|
||||||
|
it {is_expected.to eq('updated')}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -3,6 +3,7 @@ require 'spec_helper'
|
||||||
describe Users::DossiersController, type: :controller do
|
describe Users::DossiersController, type: :controller do
|
||||||
let(:user) { create(:user) }
|
let(:user) { create(:user) }
|
||||||
describe '.index' do
|
describe '.index' do
|
||||||
|
let!(:dossier) { create(:dossier, :with_entreprise, :with_procedure, user: user) }
|
||||||
subject { get :index }
|
subject { get :index }
|
||||||
context 'when user is not logged in' do
|
context 'when user is not logged in' do
|
||||||
it { is_expected.to redirect_to('/users/sign_in') }
|
it { is_expected.to redirect_to('/users/sign_in') }
|
||||||
|
|
|
@ -3,9 +3,11 @@ require 'spec_helper'
|
||||||
feature 'user access to the list of his dossier' do
|
feature 'user access to the list of his dossier' do
|
||||||
|
|
||||||
let(:user) { create(:user) }
|
let(:user) { create(:user) }
|
||||||
|
let!(:last_updated_dossier) { create(:dossier, :with_procedure, user: user)}
|
||||||
let!(:dossier1) { create(:dossier, :with_procedure, user: user, nom_projet: 'mon permier dossier') }
|
let!(:dossier1) { create(:dossier, :with_procedure, user: user, nom_projet: 'mon permier dossier') }
|
||||||
let!(:dossier2) { create(:dossier, :with_user, nom_projet: 'mon deuxième dossier') }
|
let!(:dossier2) { create(:dossier, :with_user, nom_projet: 'mon deuxième dossier') }
|
||||||
before do
|
before do
|
||||||
|
last_updated_dossier.update_attributes(nom_projet: 'salut la compagnie')
|
||||||
visit root_path
|
visit root_path
|
||||||
page.find_by_id('user_email').set user.email
|
page.find_by_id('user_email').set user.email
|
||||||
page.find_by_id('user_password').set user.password
|
page.find_by_id('user_password').set user.password
|
||||||
|
@ -15,6 +17,11 @@ feature 'user access to the list of his dossier' do
|
||||||
expect(page).to have_content(dossier1.nom_projet)
|
expect(page).to have_content(dossier1.nom_projet)
|
||||||
expect(page).not_to have_content(dossier2.nom_projet)
|
expect(page).not_to have_content(dossier2.nom_projet)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
scenario 'the list must be order by last updated' do
|
||||||
|
expect(page.body).to match(/#{last_updated_dossier.nom_projet}.*#{dossier1.nom_projet}/m)
|
||||||
|
end
|
||||||
|
|
||||||
context 'when user clicks on a projet in list' do
|
context 'when user clicks on a projet in list' do
|
||||||
before do
|
before do
|
||||||
page.click_on dossier1.nom_projet
|
page.click_on dossier1.nom_projet
|
||||||
|
|
Loading…
Reference in a new issue