Merge pull request #8023 from demarches-simplifiees/add-label-in-exports-for-sensitive-pj
add a label for api and export for sensitive data as titre_identite_champ
This commit is contained in:
commit
b744522235
5 changed files with 62 additions and 1 deletions
|
@ -2085,6 +2085,7 @@ type TextChamp implements Champ {
|
|||
}
|
||||
|
||||
type TitreIdentiteChamp implements Champ {
|
||||
filled: Boolean!
|
||||
grantType: TitreIdentiteGrantType!
|
||||
id: ID!
|
||||
|
||||
|
|
|
@ -8,9 +8,14 @@ module Types::Champs
|
|||
end
|
||||
|
||||
field :grant_type, TitreIdentiteGrantTypeType, null: false
|
||||
field :filled, Boolean, null: false
|
||||
|
||||
def grant_type
|
||||
TypesDeChamp::TitreIdentiteTypeDeChamp::PIECE_JUSTIFICATIVE
|
||||
end
|
||||
|
||||
def filled
|
||||
object.piece_justificative_file.attached?
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -37,7 +37,7 @@ class Champs::TitreIdentiteChamp < Champ
|
|||
end
|
||||
|
||||
def for_export
|
||||
nil
|
||||
piece_justificative_file.attached? ? "présent" : "absent"
|
||||
end
|
||||
|
||||
def for_api
|
||||
|
|
|
@ -158,6 +158,30 @@ RSpec.describe Types::DossierType, type: :graphql do
|
|||
}
|
||||
end
|
||||
|
||||
describe 'dossier with titre identite filled' do
|
||||
let(:procedure) { create(:procedure, :published, types_de_champ_public: [{ type: :titre_identite }]) }
|
||||
let(:dossier) { create(:dossier, :accepte, :with_populated_champs, procedure: procedure) }
|
||||
|
||||
let(:query) { DOSSIER_WITH_TITRE_IDENTITE_QUERY }
|
||||
let(:variables) { { number: dossier.id } }
|
||||
|
||||
it {
|
||||
expect(data[:dossier][:champs][0][:filled]).to eq(true)
|
||||
}
|
||||
end
|
||||
|
||||
describe 'dossier with titre identite not filled' do
|
||||
let(:procedure) { create(:procedure, :published, types_de_champ_public: [{ type: :titre_identite }]) }
|
||||
let(:dossier) { create(:dossier, :accepte, procedure: procedure) }
|
||||
|
||||
let(:query) { DOSSIER_WITH_TITRE_IDENTITE_QUERY }
|
||||
let(:variables) { { number: dossier.id } }
|
||||
|
||||
it {
|
||||
expect(data[:dossier][:champs][0][:filled]).to eq(false)
|
||||
}
|
||||
end
|
||||
|
||||
DOSSIER_QUERY = <<-GRAPHQL
|
||||
query($number: Int!) {
|
||||
dossier(number: $number) {
|
||||
|
@ -260,4 +284,21 @@ RSpec.describe Types::DossierType, type: :graphql do
|
|||
}
|
||||
}
|
||||
GRAPHQL
|
||||
|
||||
DOSSIER_WITH_TITRE_IDENTITE_QUERY = <<-GRAPHQL
|
||||
query($number: Int!) {
|
||||
dossier(number: $number) {
|
||||
id
|
||||
number
|
||||
champs {
|
||||
id
|
||||
label
|
||||
__typename
|
||||
... on TitreIdentiteChamp {
|
||||
filled
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
GRAPHQL
|
||||
end
|
||||
|
|
14
spec/models/champs/titre_identite_champ_spec.rb
Normal file
14
spec/models/champs/titre_identite_champ_spec.rb
Normal file
|
@ -0,0 +1,14 @@
|
|||
describe Champs::TitreIdentiteChamp do
|
||||
describe "#for_export" do
|
||||
let(:champ_titre_identite) { create(:champ_titre_identite) }
|
||||
|
||||
subject { champ_titre_identite.for_export }
|
||||
|
||||
it { is_expected.to eq('présent') }
|
||||
|
||||
context 'without attached file' do
|
||||
before { champ_titre_identite.piece_justificative_file.purge }
|
||||
it { is_expected.to eq('absent') }
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Reference in a new issue