LF-2643 Test plan

When a task is assigned to a user without a wage, prompt to provide a wage https://lite-farm.atlassian.net/browse/LF-2643

Area / scope to test

Front end

Back end

Model

Notes

Area / scope to test

Front end

Back end

Model

Notes

Requirement specific constraints

N/A

N/A

N/A

 

Role based constraints

FW should not see this interaction

N/A

N/A

Does role determine what a user can see or do? Is this enforced uniformly across the front end and back end?

User preferences constraints

  • All copy is in the user’s preferred language

N/A

 

Is this impacted by user or farm preferences such as language, system of measure, certification status?

Farm-level defaults / preferences

  • Currency displayed in the currency of the farm

N/A

N/A

 

Numerical input constraints

Wage value must be a decimal >= 0 AND < 999,999,999

N/A

Decimals past the second are discarded

Do we appropriately handle negative, very small, very large, or 0 as inputs?

Text input constraints

N/A

N/A

N/A

Do we appropriately handle blank, very small, and very large inputs? Is there a strict format (such as email) that must be followed?

Date based constraints

N/A

N/A

N/A

Are there logical restrictions on what dates can be input? Should a use be able to complete something in the future for example.

Date based assumptions

N/A

N/A

N/A

Are we making valid assumptions about what dates should be allowed?

Timezone driven interactions

N/A

N/A

N/A

If timezones play a role in the data, are they being displayed or converted appropriately?

Interaction / transitioning UI based constraints

  • If “Yes” option is selected, display a “Set hourly wage” input value and the input should be required i.e. if no value is input an inline error is displayed

  • If “No” option is selected, hide the “Set hourly wage” input value

  • Only display the above UI AFTER a user without a wage AND who has not had “Don’t ask again” set is chosen

  • If an assignee with a wage OR who has had “Don’t ask again” set is chosen, hide described UI

 

  • Click “Update” (once enabled) to:

    • PATCH this task with the new assignee

      • Endpoint must verify appropriate permission to modify assignee

    • If “Yes, set hourly wage” is selected and a new hourly wage was provided, PATCH the userFarm with the new wage

      • Endpoint must verify appropriate permission to modify userFarm

    • If “Yes, just for this task” is selected and a new hourly wage was provided, PATCH wage_at_moment on the task only

      • Endpoint must verify appropriate permission to modify userFarm

    • If “No, don’t ask again” was selected, PATCH the userFarm with the “Don’t ask again” property

      • Endpoint must verify appropriate permission to modify userFarm

    • If “Assign all tasks on this date to {full_name}.” was checked, PATCH all unassigned tasks on this date with the new assignee

      • Endpoint must verify appropriate permission to modify assignee

 

Database is updated appropriately:

  • Hourly wage set for assignee if a new hourly wage is set

  • wage_at_moment updated if task wage is updated

  • If “No, don’t ask again” was updated, “Don’t ask again” property is set to true

  • All tasks on date are assigned to this assignee if. assign all tasks on date is selected

Is the UI transitioning appropriately? Is the API providing da

Flow based constraints

  • If “Don’t ask again” is set for a particular assignee hide described UI

  • Click “Cancel” or anywhere in the background to dismiss the modal without changing state

 

 

 

Is state being preserved appropriately in a flow? If I go back and then forth, is it maintained? Is state invalidated when it should be?

Synchronous / asynchronous constraints

N/A

N/A

N/A

Is the interaction synchronous, asynchronous, or does it support both? Can you simulate both if so?

Time-out / low bandwidth constrains

N/A

N/A

N/A

Does the feature fail gracefully under no bandwidth / low bandwidth environments?

Data transformation correctness

 

 

Is the data persisted as expected post-transformation?

Are values appropriately updated when units change? Is it WYSIWYG?

Outcome correctness

 

 

 

When inputting known inputs with expected outputs - do you get the results you expect? Have you tested several “cases” of this?

Switching farms

 

 

 

Does this feature respond well to switching farms (and returning)?

Notification constraints

 

 

 

Should a notification be marshalled based on this action?

Cascading effects

  • Ensure assigning another task to the recently updated user doesn’t re-prompt for wage assignment if “Yes, set hourly wage” was updated

  • Make sure previously completed tasks don’t have their wages overridden by newly entered values

  • Ensure assigning another task to the recently updated user doesn’t re-prompt for wage assignment if “No, don’t ask again” was selected

 

 

Are there logical places

Integration constrains

 

 

 

Do we need to ensure state is consistent between LiteFarm and the external service? What failure cases do we need to handle? How do we report back the outcome to the user or external service?