Fix Test spec/controllers/api/*.rb
This commit is contained in:
parent
fc289ba7b3
commit
90cfd3eccb
10 changed files with 33 additions and 29 deletions
|
@ -16,7 +16,8 @@ class API::V1::DossiersController < APIController
|
|||
def index
|
||||
procedure = current_administrateur.procedures.find(params[:procedure_id])
|
||||
dossiers = procedure.dossiers.where.not(state: :draft).paginate(page: params[:page])
|
||||
render json: dossiers, each_serializer: DossiersSerializer, meta: pagination(dossiers), meta_key: 'pagination', status: 200
|
||||
|
||||
render json: {dossiers: dossiers.map{|dossier| DossiersSerializer.new(dossier)}, pagination: pagination(dossiers)}, status: 200
|
||||
rescue ActiveRecord::RecordNotFound => e
|
||||
render json: {}, status: 404
|
||||
end
|
||||
|
@ -39,9 +40,10 @@ class API::V1::DossiersController < APIController
|
|||
def show
|
||||
procedure = current_administrateur.procedures.find(params[:procedure_id])
|
||||
dossier = procedure.dossiers.find(params[:id])
|
||||
|
||||
respond_to do |format|
|
||||
format.json { render json: dossier, status: 200 }
|
||||
format.csv { render csv: dossier, status: 200 }
|
||||
format.json { render json: {dossier: DossierSerializer.new(dossier).as_json}, status: 200 }
|
||||
format.csv { render csv: dossier.as_csv, status: 200 }
|
||||
end
|
||||
rescue ActiveRecord::RecordNotFound => e
|
||||
render json: {}, status: 404
|
||||
|
|
|
@ -14,9 +14,9 @@ class API::V1::ProceduresController < APIController
|
|||
}
|
||||
|
||||
def show
|
||||
@procedure = current_administrateur.procedures.find(params[:id]).decorate
|
||||
procedure = current_administrateur.procedures.find(params[:id]).decorate
|
||||
|
||||
render json: @procedure
|
||||
render json: {procedure: ProcedureSerializer.new(procedure).as_json}
|
||||
rescue ActiveRecord::RecordNotFound => e
|
||||
Rails.logger.error(e.message)
|
||||
render json: {}, status: 404
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
class CerfaSerializer < ActiveModel::Serializer
|
||||
|
||||
attributes :created_at,
|
||||
:content_url => :url
|
||||
:content_url
|
||||
|
||||
has_one :user
|
||||
end
|
|
@ -1,7 +1,7 @@
|
|||
class PieceJustificativeSerializer < ActiveModel::Serializer
|
||||
attributes :created_at,
|
||||
:type_de_piece_justificative_id,
|
||||
:content_url => :url
|
||||
:content_url
|
||||
|
||||
has_one :user
|
||||
end
|
|
@ -1,7 +1,7 @@
|
|||
class TypeDeChampSerializer < ActiveModel::Serializer
|
||||
attributes :id,
|
||||
:libelle,
|
||||
{:type_champ => :type},
|
||||
:type_champ,
|
||||
:order_place,
|
||||
:description
|
||||
end
|
1
config/initializers/active_model_serializer.rb
Normal file
1
config/initializers/active_model_serializer.rb
Normal file
|
@ -0,0 +1 @@
|
|||
ActiveModelSerializers.config.default_includes = '**'
|
|
@ -0,0 +1,5 @@
|
|||
class DeleteColumnTestInProcedureTable < ActiveRecord::Migration[5.0]
|
||||
def change
|
||||
remove_column :procedures, :test
|
||||
end
|
||||
end
|
|
@ -10,7 +10,7 @@
|
|||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(version: 20161102154835) do
|
||||
ActiveRecord::Schema.define(version: 20161115053251) do
|
||||
|
||||
# These are extensions that must be enabled in order to support this database
|
||||
enable_extension "plpgsql"
|
||||
|
@ -293,7 +293,6 @@ ActiveRecord::Schema.define(version: 20161102154835) do
|
|||
t.string "lien_demarche"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.boolean "test"
|
||||
t.integer "administrateur_id"
|
||||
t.boolean "archived", default: false
|
||||
t.boolean "euro_flag", default: false
|
||||
|
|
|
@ -8,7 +8,7 @@ describe API::V1::DossiersController do
|
|||
it { expect(described_class).to be < APIController }
|
||||
|
||||
describe 'GET index' do
|
||||
let(:retour) { get :index, token: admin.api_token, procedure_id: procedure_id }
|
||||
let(:retour) { get :index, params: {token: admin.api_token, procedure_id: procedure_id} }
|
||||
|
||||
subject { retour }
|
||||
|
||||
|
@ -58,7 +58,7 @@ describe API::V1::DossiersController do
|
|||
end
|
||||
|
||||
context 'when there are multiple pages' do
|
||||
let(:retour) { get :index, token: admin.api_token, procedure_id: procedure_id, page: 2 }
|
||||
let(:retour) { get :index, params: {token: admin.api_token, procedure_id: procedure_id, page: 2} }
|
||||
|
||||
let!(:dossier1) { create(:dossier, :with_entreprise, procedure: procedure, state: 'initiated') }
|
||||
let!(:dossier2) { create(:dossier, :with_entreprise, procedure: procedure, state: 'initiated') }
|
||||
|
@ -79,7 +79,7 @@ describe API::V1::DossiersController do
|
|||
end
|
||||
|
||||
describe 'GET show' do
|
||||
let(:retour) { get :show, token: admin.api_token, procedure_id: procedure_id, id: dossier_id }
|
||||
let(:retour) { get :show, params: {token: admin.api_token, procedure_id: procedure_id, id: dossier_id} }
|
||||
subject { retour }
|
||||
|
||||
context 'when procedure is not found' do
|
||||
|
@ -121,6 +121,7 @@ describe API::V1::DossiersController do
|
|||
it 'return REST code 200', :show_in_doc do
|
||||
expect(retour.code).to eq('200')
|
||||
end
|
||||
|
||||
it { expect(subject[:id]).to eq(dossier.id) }
|
||||
it { expect(subject[:state]).to eq(dossier.state) }
|
||||
it { expect(subject[:created_at]).to eq('2008-09-01T08:05:00.000Z') }
|
||||
|
@ -178,7 +179,7 @@ describe API::V1::DossiersController do
|
|||
end
|
||||
end
|
||||
|
||||
describe 'piece justificative', vcr: { cassette_name: 'controllers_api_v1_dossiers_controller_piece_justificative' } do
|
||||
describe 'piece justificative', vcr: {cassette_name: 'controllers_api_v1_dossiers_controller_piece_justificative'} do
|
||||
before do
|
||||
create :piece_justificative, :rib, dossier: dossier, type_de_piece_justificative: dossier.procedure.types_de_piece_justificative.first, user: dossier.user
|
||||
end
|
||||
|
@ -188,17 +189,14 @@ describe API::V1::DossiersController do
|
|||
subject {
|
||||
super()[:pieces_justificatives].first }
|
||||
|
||||
it { expect(subject.keys.include?(:url)).to be_truthy }
|
||||
it { expect(subject.keys.include?(:content_url)).to be_truthy }
|
||||
it { expect(subject[:created_at]).not_to be_nil }
|
||||
it { expect(subject[:type_de_piece_justificative_id]).not_to be_nil }
|
||||
|
||||
it { expect(subject.keys.include?(:user)).to be_truthy }
|
||||
|
||||
describe 'user' do
|
||||
let(:field_list) { [
|
||||
:url, :created_at, :type_de_piece_justificative_id] }
|
||||
subject {
|
||||
super()[:user] }
|
||||
subject { super()[:user] }
|
||||
|
||||
it { expect(subject[:email]).not_to be_nil }
|
||||
end
|
||||
|
@ -279,7 +277,7 @@ describe API::V1::DossiersController do
|
|||
it { expect(subject.first[:email]).to eq 'plop@plip.com' }
|
||||
end
|
||||
|
||||
describe 'cerfa', vcr: { cassette_name: 'controllers_api_v1_dossiers_controller_cerfa' } do
|
||||
describe 'cerfa', vcr: {cassette_name: 'controllers_api_v1_dossiers_controller_cerfa'} do
|
||||
let!(:dossier) { Timecop.freeze(date_creation) { create(:dossier, :with_entreprise, :with_cerfa_upload, procedure: procedure) } }
|
||||
let(:content) { File.open('./spec/support/files/piece_justificative_388.pdf') }
|
||||
|
||||
|
@ -294,9 +292,9 @@ describe API::V1::DossiersController do
|
|||
|
||||
it { expect(subject[:created_at]).not_to be_nil }
|
||||
if Features.remote_storage
|
||||
it { expect(subject[:url]).to match /^https:\/\/storage.apientreprise.fr\/tps_dev\/cerfa-.*\.pdf$/ }
|
||||
it { expect(subject[:content_url]).to match /^https:\/\/storage.apientreprise.fr\/tps_dev\/cerfa-.*\.pdf$/ }
|
||||
else
|
||||
it { expect(subject[:url]).to match /^http:\/\/.*downloads.*_CERFA\.pdf$/ }
|
||||
it { expect(subject[:content_url]).to match /^http:\/\/.*downloads.*_CERFA\.pdf$/ }
|
||||
end
|
||||
|
||||
describe 'user' do
|
||||
|
|
|
@ -1,22 +1,22 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe API::V1::ProceduresController do
|
||||
describe API::V1::ProceduresController, type: :controller do
|
||||
let(:admin) { create(:administrateur) }
|
||||
it { expect(described_class).to be < APIController }
|
||||
|
||||
describe 'GET show' do
|
||||
context 'when procedure does not exist' do
|
||||
subject { get :show, id: 999_999_999, token: admin.api_token }
|
||||
subject { get :show, params: {id: 999_999_999, token: admin.api_token }}
|
||||
it { expect(subject.status).to eq(404) }
|
||||
end
|
||||
context 'when procedure does not belong to administrateur' do
|
||||
let(:procedure) { create(:procedure, administrateur: create(:administrateur)) }
|
||||
subject { get :show, id: procedure, token: admin.api_token }
|
||||
subject { get :show, params:{id: procedure, token: admin.api_token }}
|
||||
it { expect(subject.status).to eq(404) }
|
||||
end
|
||||
context 'when procedure exist' do
|
||||
let(:procedure) { create(:procedure, :with_two_type_de_piece_justificative, :with_type_de_champ, administrateur: admin) }
|
||||
subject { get :show, id: procedure, token: admin.api_token }
|
||||
subject { get :show, params:{id: procedure, token: admin.api_token }}
|
||||
|
||||
it 'return REST code 200', :show_in_doc do
|
||||
expect(subject.status).to eq(200)
|
||||
|
@ -25,7 +25,7 @@ describe API::V1::ProceduresController do
|
|||
describe 'body' do
|
||||
let(:module_api_carto) { create(:module_api_carto, use_api_carto: true, quartiers_prioritaires: true, cadastre: true) }
|
||||
let(:procedure) { create(:procedure, :with_type_de_champ, :with_two_type_de_piece_justificative, module_api_carto: module_api_carto, administrateur: admin) }
|
||||
let(:response) { get :show, id: procedure.id, token: admin.api_token }
|
||||
let(:response) { get :show, params:{id: procedure.id, token: admin.api_token }}
|
||||
subject { JSON.parse(response.body, symbolize_names: true)[:procedure] }
|
||||
|
||||
it { expect(subject[:id]).to eq(procedure.id) }
|
||||
|
@ -43,7 +43,7 @@ describe API::V1::ProceduresController do
|
|||
let(:champ) { procedure.types_de_champ.first }
|
||||
it { expect(subject[:id]).to eq(champ.id) }
|
||||
it { expect(subject[:libelle]).to eq(champ.libelle) }
|
||||
it { expect(subject[:type]).to eq(champ.type_champ) }
|
||||
it { expect(subject[:type_champ]).to eq(champ.type_champ) }
|
||||
it { expect(subject[:order_place]).to eq(champ.order_place) }
|
||||
it { expect(subject[:description]).to eq(champ.description) }
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue