Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

As a contractor, I should be able to create payments, so that I can make purchases and maintain accounts #72

Open
arafaysaleem opened this issue Jul 26, 2021 · 0 comments
Labels
user story A brief explanation of a functionality or an interaction with the system, from a user's perspective

Comments

@arafaysaleem
Copy link
Contributor

arafaysaleem commented Jul 26, 2021

Summary

As a contractor, I should be able to create payments, so that I can make purchases and maintain accounts.

Acceptance Criteria

GIVEN an contractor is creating a payment in the desktop app
WHEN the app hits the /payments endpoint with a valid POST request, containing:

THEN the app should receive a status 201
AND in the response, the following information should be returned:

  • headers
  • payment details

Sample Request/Sample Response

headers: {
    error: 0,
    message: "..."
}
body: {
    "pay_id": 0,
    "affected_rows": 1
}

Resources

  • Development URL: {Here goes a URL to the feature on development API}
  • Production URL: {Here goes a URL to the feature on production API}

Dev Notes

{Some complementary notes if necessary}

Testing Notes

Scenario 1: POST request is successful

  1. Create a new payment with a POST request to /payments endpoint and ensure a 201 status code is returned.
  2. Use the id returned by the response in a subsequent GET request to /payments/:id endpoint and ensure a 200 status code is returned.
  3. Ensure the response contains a equipment with the correct information i.e. matching the initially sent body.

Scenario 2: POST request is incorrect

  1. Send a POST request to /payments endpoint with the pay_type_id containing a value not in the database.
  2. Ensure a 422 status code is returned
  3. And the response headers' code parameter should contain an error pointing out foreign key violation.

Scenario 3: POST request fails foreign key constraint

Missing foreign key
  1. Send a POST request to /payments endpoint with the pay_type_id or milestone_id or project_id containing a value not in the database.
  2. Ensure a 422 status code is returned
  3. And the response headers' code parameter should contain an error pointing out foreign key violation.
Referring to a milestone id of a different project i.e. failed constraint
  1. Send a POST request to /payments endpoint with the milestone_id containing a value such that the body project_id is not the same as that milestone's project_id.
  2. Ensure a 422 status code is returned
  3. And the response headers' code parameter should contain an error pointing out foreign key violation.

Scenario 3: POST request is forbidden

  1. Send a POST request to /payments endpoint with a inspector account token.
  2. Ensure a 403 forbidden status code is returned.
  3. And the response headers' code parameter should contain an error pointing out failed access.
@arafaysaleem arafaysaleem added the user story A brief explanation of a functionality or an interaction with the system, from a user's perspective label Jul 26, 2021
@arafaysaleem arafaysaleem mentioned this issue Jul 26, 2021
9 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
user story A brief explanation of a functionality or an interaction with the system, from a user's perspective
Projects
None yet
Development

No branches or pull requests

1 participant