cyntaria / ConstructionERP-Backend

A REST API backend system for the construction ERP software made with NodeJS
Creative Commons Zero v1.0 Universal
0 stars 0 forks source link

As a contractor, I should be able to create projects, so that I can setup construction projects #76

Open arafaysaleem opened 3 years ago

arafaysaleem commented 3 years ago

Summary

As a contractor, I should be able to create projects, so that I can setup construction projects.

Acceptance Criteria

GIVEN an contractor is creating a project in the desktop app WHEN the app hits the /projects 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:

Sample Request/Sample Response

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

Resources

Dev Notes

{Some complementary notes if necessary}

Testing Notes

Scenario 1: POST request is successful

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

Scenario 2: POST request is incorrect

  1. Send a POST request to /projects endpoint with the body containing an incorrect key.
  2. Ensure a 422 status code is returned
  3. And the response headers' code parameter should contain an error pointing out failed validation.

Scenario 3: POST request is forbidden

  1. Send a POST request to /projects 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.