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 product owner, I should be able to create labels, so that the contractor can assign them to milestones. #48

Open arafaysaleem opened 3 years ago

arafaysaleem commented 3 years ago

Summary

As a product owner, I should be able to create labels, so that the contractor can assign them to milestones.

Acceptance Criteria

GIVEN an product owner is creating a label in the desktop app WHEN the app hits the /labels 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: {
    "label_id": "...",
    "affected_rows": 1
}

Resources

Dev Notes

{Some complementary notes if necessary}

Testing Notes

Scenario 1: POST request is successful

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

Scenario 2: POST request is incorrect

  1. Send a POST request to /labels endpoint with an incorrect key name in the body
  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 /labels endpoint with a contractor 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.