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:
Paul Chavard 2022-11-18 11:21:52 +01:00 committed by GitHub
commit b744522235
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 62 additions and 1 deletions

View file

@ -2085,6 +2085,7 @@ type TextChamp implements Champ {
}
type TitreIdentiteChamp implements Champ {
filled: Boolean!
grantType: TitreIdentiteGrantType!
id: ID!

View file

@ -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

View file

@ -37,7 +37,7 @@ class Champs::TitreIdentiteChamp < Champ
end
def for_export
nil
piece_justificative_file.attached? ? "présent" : "absent"
end
def for_api

View file

@ -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

View 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