Skip to content

Commit

Permalink
Use CleanBaseMutation
Browse files Browse the repository at this point in the history
  • Loading branch information
martha committed Feb 6, 2025
1 parent 128e6b3 commit e6661b2
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 34 deletions.
2 changes: 1 addition & 1 deletion drivers/hmis/app/graphql/mutations/join_household.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
###

module Mutations
class JoinHousehold < BaseMutation
class JoinHousehold < CleanBaseMutation
argument :receiving_household_id, ID, required: true
argument :joining_enrollment_inputs, [Types::HmisSchema::EnrollmentRelationshipInput], required: true

Expand Down
23 changes: 1 addition & 22 deletions drivers/hmis/app/graphql/schema.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -5633,26 +5633,10 @@ Represents untyped JSON
"""
scalar JSON

"""
Autogenerated input type of JoinHousehold
"""
input JoinHouseholdInput {
"""
A unique identifier for the client performing the mutation.
"""
clientMutationId: String
joiningEnrollmentInputs: [EnrollmentRelationshipInput!]!
receivingHouseholdId: ID!
}

"""
Autogenerated return type of JoinHousehold.
"""
type JoinHouseholdPayload {
"""
A unique identifier for the client performing the mutation.
"""
clientMutationId: String
donorHousehold: Household
errors: [ValidationError!]!
receivingHousehold: Household!
Expand Down Expand Up @@ -6248,12 +6232,7 @@ type Mutation {
"""
input: DeleteUnitsInput!
): DeleteUnitsPayload
joinHousehold(
"""
Parameters for JoinHousehold
"""
input: JoinHouseholdInput!
): JoinHouseholdPayload
joinHousehold(joiningEnrollmentInputs: [EnrollmentRelationshipInput!]!, receivingHouseholdId: ID!): JoinHouseholdPayload
mergeClients(
"""
Parameters for MergeClients
Expand Down
20 changes: 9 additions & 11 deletions drivers/hmis/spec/requests/hmis/join_household_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@

let(:mutation) do
<<~GRAPHQL
mutation JoinHousehold($input: JoinHouseholdInput!) {
joinHousehold(input: $input) {
mutation JoinHousehold($receivingHouseholdId: ID!, $joiningEnrollmentInputs: [EnrollmentRelationshipInput!]!) {
joinHousehold(receivingHouseholdId:$receivingHouseholdId, joiningEnrollmentInputs:$joiningEnrollmentInputs) {
receivingHousehold {
id
householdSize
Expand Down Expand Up @@ -64,10 +64,8 @@ def perform_mutation(
]
)
input = {
input: {
receiving_household_id: receiving_household_id,
joining_enrollment_inputs: joining_enrollment_inputs,
},
receiving_household_id: receiving_household_id,
joining_enrollment_inputs: joining_enrollment_inputs,
}
response, result = post_graphql(input) { mutation }

Expand Down Expand Up @@ -196,7 +194,7 @@ def perform_mutation(
receiving_household_id: 'fake-household',
joining_enrollment_inputs: [],
}
expect_access_denied post_graphql(input: input) { mutation }
expect_access_denied post_graphql(**input) { mutation }
end

it 'fails when the user does not have can_split_households permission' do
Expand All @@ -205,7 +203,7 @@ def perform_mutation(
receiving_household_id: receiving_enrollment.household_id,
joining_enrollment_inputs: [],
}
expect_access_denied post_graphql(input: input) { mutation }
expect_access_denied post_graphql(**input) { mutation }
end

it 'fails when the given joining enrollment IDs are invalid' do
Expand All @@ -218,7 +216,7 @@ def perform_mutation(
},
],
}
expect_access_denied post_graphql(input: input) { mutation }
expect_access_denied post_graphql(**input) { mutation }
end

it 'fails when the given joining enrollment ID comes from a different project' do
Expand All @@ -233,7 +231,7 @@ def perform_mutation(
},
],
}
expect_access_denied post_graphql(input: input) { mutation }
expect_access_denied post_graphql(**input) { mutation }
end

it 'fails when the join would leave behind a headless household' do
Expand All @@ -246,6 +244,6 @@ def perform_mutation(
},
],
}
expect_gql_error post_graphql(input: input) { mutation }, message: /This operation would leave behind a household with no HoH/
expect_gql_error post_graphql(**input) { mutation }, message: /This operation would leave behind a household with no HoH/
end
end

0 comments on commit e6661b2

Please sign in to comment.