[#877] Gestion des URL dynamique sur la home page
This commit is contained in:
parent
b3383bec9f
commit
f955e1d2e4
4 changed files with 59 additions and 19 deletions
|
@ -1,5 +1,17 @@
|
||||||
class StartController < ApplicationController
|
class StartController < ApplicationController
|
||||||
def index
|
def index
|
||||||
|
@procedure_id = params['procedure_id']
|
||||||
|
@procedure = Procedure.find(@procedure_id)
|
||||||
|
|
||||||
|
if @procedure.nil?
|
||||||
|
error_procedure
|
||||||
|
end
|
||||||
|
rescue ActiveRecord::RecordNotFound
|
||||||
|
error_procedure
|
||||||
|
end
|
||||||
|
|
||||||
|
def error_procedure
|
||||||
|
render :file => "#{Rails.root}/public/404.html", :status => 404
|
||||||
end
|
end
|
||||||
|
|
||||||
def error_siret
|
def error_siret
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
%p.lead{id: 'pro_section'}
|
%p.lead{id: 'pro_section'}
|
||||||
%h2#titre_procedure.text-info
|
%h2#titre_procedure.text-info
|
||||||
Demande de subvention
|
=@procedure.libelle
|
||||||
|
|
||||||
%br
|
%br
|
||||||
= form_tag(url_for({controller: :dossiers, action: :create}), class: 'form-inline', method: 'POST') do |f|
|
= form_tag(url_for({controller: :dossiers, action: :create}), class: 'form-inline', method: 'POST') do |f|
|
||||||
.form-group.form-group-lg
|
.form-group.form-group-lg
|
||||||
= text_field_tag :siret, nil, :class => "form-control", :placeholder => "Entrez votre Siret", :id => "siret", :name => "siret", :maxlength => 14, :style => 'margin-bottom:10px'
|
= text_field_tag :siret, nil, :class => "form-control", :placeholder => "Entrez votre Siret", :id => "siret", :name => "siret", :maxlength => 14, :style => 'margin-bottom:10px'
|
||||||
%br
|
%br
|
||||||
= submit_tag "Commencer", class: %w(btn btn-lg btn-success), style: 'margin-top:20px;', data: { disable_with: "Commencer", submit: true}
|
= submit_tag "Commencer", class: %w(btn btn-lg btn-success), style: 'margin-top:20px;', data: { disable_with: "Commencer", submit: true}
|
||||||
|
%input{type: 'hidden', value: "#{@procedure.id}", name: 'procedure_id', id: 'procedure_id'}
|
||||||
|
|
|
@ -2,9 +2,27 @@ require 'spec_helper'
|
||||||
|
|
||||||
RSpec.describe StartController, type: :controller do
|
RSpec.describe StartController, type: :controller do
|
||||||
describe 'GET #index' do
|
describe 'GET #index' do
|
||||||
it 'returns http success' do
|
let!(:procedure) { create(:procedure) }
|
||||||
get :index
|
before do
|
||||||
expect(response).to have_http_status(:success)
|
get :index, procedure_id: procedure
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when params procedure_id is present' do
|
||||||
|
context 'when procedure_id is valid' do
|
||||||
|
it { expect(response).to have_http_status(:success) }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when procedure_id is not valid' do
|
||||||
|
let(:procedure) { '' }
|
||||||
|
it { expect(response).to have_http_status(404) }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when params procedure_id is not present' do
|
||||||
|
before do
|
||||||
|
get :index
|
||||||
|
end
|
||||||
|
it { expect(response).to have_http_status(404) }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -1,27 +1,35 @@
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe 'start/index.html.haml', type: :view do
|
describe 'start/index.html.haml', type: :view do
|
||||||
context 'si personne n\'est connecté' do
|
let(:procedure) { create(:procedure, libelle: 'Demande de subvention') }
|
||||||
before do
|
before do
|
||||||
render
|
assign(:procedure, procedure)
|
||||||
|
render
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'la section des professionnels est présente' do
|
||||||
|
expect(rendered).to have_selector('#pro_section')
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'dans la section professionnel' do
|
||||||
|
it 'le formulaire envoie vers /dossiers en #POST' do
|
||||||
|
expect(rendered).to have_selector("form[action='/dossiers'][method=post]")
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'la section des professionnels est présente' do
|
it 'le champs "Numéro SIRET" est présent' do
|
||||||
expect(rendered).to have_selector('#pro_section')
|
expect(rendered).to have_selector('input[id=siret][name=siret]')
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'dans la section professionnel' do
|
it 'le titre de la procédure' do
|
||||||
it 'le formulaire envoie vers /dossiers en #POST' do
|
expect(rendered).to have_selector('#titre_procedure')
|
||||||
expect(rendered).to have_selector("form[action='/dossiers'][method=post]")
|
end
|
||||||
end
|
|
||||||
|
|
||||||
it 'le champs "Numéro SIRET" est présent' do
|
context 'stockage de l\'ID de la procédure dans un champs hidden' do
|
||||||
expect(rendered).to have_selector('input[id=siret][name=siret]')
|
it {expect(rendered).to have_selector("input[type=hidden][id=procedure_id][name=procedure_id][value='#{procedure.id}']")}
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'le titre de la procédure' do
|
it 'le titre de la procédure est présent sur la page' do
|
||||||
expect(rendered).to have_selector('#titre_procedure')
|
expect(rendered).to have_content(procedure.libelle)
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
Loading…
Add table
Reference in a new issue