Content
View differences
Updated by Parimal Satyal over 1 year ago
### Note
This work package describes how values for the start date, the finish date and duration should change in response to changes to any of one of them. We created a [similar document with scenarios previously](https://community.openproject.org/wp/43539) when we added duration to the date picker, which made it easier:
* For devs to write test cases
* Document behaviour
* Use it for testing
Now with the upcoming [introduction of automatic scheduling](https://community.openproject.org/wp/59539), we need to reevaluate if the following scenarios are still relevant, if the behaviour is consistent and what news scenarios need to be added.
**THIS DOCUMENT IS A WORK IN PROGRESS, PLEASE DO NOT USE IT UNTIL THE STATUS IS SET TO 'TO BE SCHEDULED' or 'SCHEDULED'.**
### Scenarios (updated)
#### Scenario 1
* Setup
* Start date: Wednesday, January 8, 2025
* Finish date: empty
* Duration: empty
* Include non-working days: off
* Change
* User enters a duration of 10 days
* Expected result:
* The finish date is set Tuesday, January 21 2025 (derived)
<br>
#### Scenario 2
* Setup
* Start date: empty
* Finish date: empty
* Duration: empty
* Change
* User enters a duration of 10 days
* Expected result:
* No date is added
<br>
#### Scenario 3
* Setup
* Start date: empty
* Finish date: Tuesday, January 21 2025 (derived)
* Duration: empty
* Include non-working days: off
* Change
* User enters a duration of 10 days
* Expected result:
* The start date is set to Wednesday, January 8, 2025 (derived)
<br>
#### Scenario 4
* Setup
* Start date: Monday, January 13, 2025
* Finish date: Friday, January 24, 2025
* Duration: 10 days
* Include non-working days: off
* Change
* User changes duration to 11 days
* Expected result:
* The finish date is changed to Monday, January 27, 2025
<br>
#### Scenario 5
* Setup
* Start date: Monday, January 13, 2025
* Finish date: Monday, January 20, 2025
* Duration: 11
* Non-working days: off.
* Change
* User changes duration to 10 days
* Expected result:
* The finish date is changed to Friday, January 17, 2025
<br>
#### Scenario 6
* Setup
* Start date: Tuesday, January 7, 2025
* Finish date: Friday, January 9, 2025
* Duration: 3
* Change
* Remove duration by clearing duration field
* Expected result
* Finish date is also removed, start date is maintained as is:
* Start date: Tuesday, January 7, 2025
* Finish date: -
* Duration: -
<br>
#### Scenario 6a
* Setup
* Start date: Tuesday, January 7, 2025
* Finish date: Friday, January 9, 2025
* Duration: 3
* Change
* Remove duration by focusing duration field and clicking the "x"
* Expected result
* Finish date is also removed, start date is maintained as is:
* Start date: Tuesday, January 7, 2025
* Finish date: -
* Duration: -
<br>
#### Scenario 7
* Setup
* Start date: Monday, January 6, 2025
* Finish date: Thursday, January 9, 2025
* Duration: 4
* Change
* User alters the start date to Tuesday, January 7, 2025
* Expected result
* Finish date is maintained, duration is automatically adjusted to 3 days (derived; logic = changing one date when the other is present affects duration vs. move the second date).
* \[open\] Challenge?
<br>
#### Scenario 8
* Setup
* Start date: Monday, January 6, 2025
* Finish date: Thursday, January 9, 2025
* Duration: 4
* Change
* User alters the finish date to January 10, 2025
* Expected result
* Start date is unaffected, duration is now set to 5 days:
* Start date: Monday, January 6, 2025
* Finish date: Friday, January 10, 2025
* Duration: 5
#### Scenario 9
* Setup
* Start date: empty
* Finish date: empty
* Duration: 4
* Change
* User enters the finish date of Friday, January 10, 2025 (finish date in focus).
* Expected result
* The start date is set to Tuesday, January 7, 2025 (derived from duration):
* Start date: Tuesday, January 7, 2025
* Finish date: Friday, January 10, 2025
* Duration: 4
<br>
#### Scenario 10
* Setup
* Start date: empty
* Finish date: Thursday, January 9, 2025
* Duration: empty
* Change
* User enters the start date of Tuesday, January 7, 2025
* Expected result
* Duration is set to 3 (derived from start date):
* Start date: Tuesday, January 7, 2025
* Finish date: Thursday, January 9, 2025
* Duration: 3
<br>
#### Scenario 11
* Setup
* Start date: Monday, January 6, 2025
* Finish date: Thursday, January 9, 2025
* Duration: 4
* Change
* The user moves the drag handle on the left border (start date) of the box representing the work package in Gantt chart and Team planner one day to the right (to Tuesday, Jan 7, 2025)
* Expected result
* The duration is reduced to 3 days
* The start date is set Tuesday, January 7, 2025
* The finish date is left unchanged
<br>
#### Scenario 12 (GANTT/Team planner)
* Setup
* Start date: Monday, January 6, 2025
* Finish date: Wednesday, January 8, 2025
* Duration: 3
* Change
* The user moves the work package by dragging it (on the GANTT/team planner) it to the **right** so start date is Wednesday, January 8, 2025
* Expected result
* The duration is maintained. Start state is now January 8, 2025 (as set by drag), finish date is set to Friday, January 10, 2025 (derived based on duration).
<br>
#### Scenario 12bis (GANTT/Team planner)
* Setup
* Start date: Wednesday, January 8, 2025
* Finish date: Friday, January 10, 2025
* Duration: 3
* Change
* The user moves the work package by dragging it (on the GANTT/team planner) it to the **left** so start date is Monday, January 6, 2025.
* Expected result
* The duration is maintained. Start state is now Monday, January 6, 2025 (as set by drag), finish date is set to Wednesday, January 8, 2025 (derived based on duration)
<br>
#### Scenario 13
* Setup
* Start date: Tuesday, January 7, 2025
* Finish date: Thursday, January 9, 2025
* Duration: 3
* Change
* The user changes the start day on the date picker to Wednesday, February 5, 2025 (note that this is _after_ the original finish date)
* Expected result
* The start date is set to Wednesday, February 5
* The finish date is cleared
* Duration is cleared
<br>
#### Scenario 13a
* Setup
* Start date: Thursday, January 23, 2025
* Finish date: empty
* Duration: empty
* Today's date is Tuesday, January 21, 2025
* Change
* The user clicks the "Today" link under the Finish date field
* Expected result
* The finish date is set to Tuesday, February 9, 2021
* The start date is cleared
* Duration is cleared
<br>
#### Scenario 14
* Setup
* Start date: Tuesday, January 7, 2025
* Finish date: Thursday, January 9, 2025
* Duration: 3
* Change
* The user changes the start day on the date picker to Monday, January 6, 2025 (note that this is _before_ the original start date).
* Expected result
* The start date is now Monday, January 6, 2025
* The finish date is now Wednesday, January 8, 2025
* The duration is conserved: 3 days.
<br>
#### Scenario 15
* Setup
* Start date: Thursday, January 7, 2025
* Finish date: Tuesday, January 14, 2025
* Duration: 4
* Include non-working days: off
* Change
* Include non-working days: on
* Expected result
* Start date remains Thursday, January 7, 2025
* Finish date is changed to Sunday, January 12, 2025
* Duration is conserved (4 days)
<br>
#### Scenario 16
* Setup
* Start date: Thursday, January 7, 2025
* Finish date: Sunday, January 12, 2025
* Duration: 4
* Include non-working days: on
* Change
* Include non-working days: off
* Expected result
* Start date remains Thursday, January 7, 2025
* Finish date is changed to Tuesday, January 14, 2025
* Duration is conserved (4 days)
####
#### Scenario 17
* Setup
* Start date: Saturday, January 11, 2025
* Finish date: Sunday, January 12, 2025
* Include non-working days: on
* Duration: 2
* Change
* Include non-working days: off
* Expected result
* Start date changes to Monday, January 13, 2025
* Finish date is changed to Tuesday, January 14, 2025
* Duration is conserved (2 days)
<br>
#### Scenario 18
* Setup
* Start date: Saturday, January 11, 2025
* Finish date: Tuesday, January 21, 2025
* Include non-working days: on
* Duration: 11 days
<br>
* Change
* Include non-working days: off
* Expected result
* Start date changes to Monday, January 13, 2025
* Finish date is changed to Monday, January 27, 2025
* Duration is conserved (11 days)
####
#### Scenario 19
* Setup
* Start date: Saturday, January 11, 2025
* Finish date: -
* Include non-working days: on
* Duration: -
* Change
* Include non-working days: off
* Expected result
* Start date changes to Monday, January 13, 2025
* Finish date is still empty
* Duration is still empty
<br>
#### Scenario 20
* Setup
* Start date: -
* Finish date: Sunday, January 12, 2025
* Include non-working days: on
* Duration: -
* Change
* Include non-working days: off
* Expected result
* Start date is still empty
* Finish date is Monday, February 13, 2025
* Duration is still empty
####
#### Scenario 21a
* Setup
* Start date: Saturday, January 11, 2025
* Finish date: Sunday, January 12, 2025
* Include non-working days: on
* Duration: 2
* Change
* Clear start date
* Expected result
* Start date is removed
* Duration is removed
* Finish date is maintained at Sunday, January 12, 2025
####
#### Scenario 21b
* Setup
* Start date: Saturday, January 11, 2025
* Finish date: Sunday, January 12, 2025
* Include non-working days: on
* Duration: 2
* Change
* Finish date is cleared
* Expected result
* Start date is maintained at Saturday, January 11, 2025
* Finish date is removed
* Duration is removed
<br>
#### Scenario 22a
* Setup
* Start date: Thursday, January 9, 2025
* Finish date: -
* Duration: -
* Change
* With duration in focus, click on Wednesday, January 8, 2025
* Note: this is one day _earlier_ than the current start date
* Expected result
* Start date is updated to at Wednesday, January 8, 2025 (the clicked date)
* Finish date is set to Thursday, January 9, 2025 (the previous start date)
* Focus is set to start date
* \[open\] Challenge?
* Duration is derived as 2 days
####
#### Scenario 22b
* Setup
* Start date: Thursday, January 9, 2025
* Finish date: -
* Duration: -
* Change
* With duration in focus, click on Friday, January 10, 2025
* Note: this is one day _after_ than the current start date
* Expected result
* Start date stays at Thursday, January 9, 2025
* Finish date is set to Friday, January 10, 2025
* Duration is derived as 2 days
* Focus is set to start date
* \[open\] Challenge?
####
#### Scenario 23a
* Setup
* Start date: empty
* Finish date: Thursday, January 9, 2025
* Duration: empty
* Change
* With duration in focus, click on Friday, January 10, 2025
* Expected result
* Start date is set to Thursday, January 9, 2025 (the previous finish date)
* Finish date is updated to Friday, January 10, 2025 (the clicked date)
* Duration is derived as 2 days
* Focus is set to start date
* \[open\] Challenge?
<br>
#### Scenario 23b
* Setup
* Start date: empty
* Finish date: Thursday, January 9, 2025
* Duration: empty
* Change
* With duration in focus, click on Wednesday, January 8, 2025
* Expected result
* Start date is set to Wednesday, January 8, 2025 (the clicked date)
* Finish date remains Thursday, January 9, 2025
* Duration is derived as 2 days
* Focus is set to start date
* \[open\] Challenge?
<br>
### New scenarios added for automatic scheduling
<br>
#### Scenario 24: Manual to automatic with no predecessors or children 24
* Setup:
* Start date: Wed, Jan 8, 2025
* Finish date: Fri, Jan 10, 2025
* Duration: 3
* Mode: Manual
* Working days only: on
* Relations: none
* Change:
* Switch to automatic
* Expected result:
* Not possible (no predecessors or children)
<br>
#### Scenario 25: Add a predecessor
* Setup:
* Start date: Wed, Jan 8, 2025
* Finish date: Fri, Jan 10, 2025
* Duration: 3
* Mode: Manual
* Working days only: on
* Relations: none
* Change:
* Add 1 predecessor:
* Finish date: Thurs, Jan 2, 2025
* Lag: 0
* Mode: Manual to Automatic
* Expected result:
* Start date: Fri, Jan 3, 2025 (one day after predecessor)
* Finish date: Tue, Jan 7, 2025
* Duration: 3
* Mode: Auto
* Working days only: on
* Relations: 1 predecessor
<br>
#### Scenario 26a: Manual to automatic with multiple predecessors (no lag)
* Setup:
* Start date: Wed, Jan 8, 2025
* Finish date: Fri, Jan 10, 2025
* Duration: 3
* Mode: Manual
* Working days only: on
* Relations: none
* Change:
* Add predecessor A:
* Finish date: Mon, Dec 30, 2024
* Lag: 0
* Add predecessor B:
* Finish date: Thurs, Jan 2, 2025
* Lag: 0
* Mode: Manual to Automatic
* Expected result:
* Start date: Fri, Jan 3, 2025 (closest predecessor)
* Finish date: Tue, Jan 7, 2025
* Duration: 3
* Mode: Auto
* Working days only: on
* Relations: 2 predecessors
<br>
#### Scenario 26b: Manual to automatic with multiple predecessors (with lag)
* Setup:
* Start date: Wed, Jan 8, 2025
* Finish date: Fri, Jan 10, 2025
* Duration: 3
* Mode: Manual
* Working days only: on
* Relations: none
* Change:
* Add predecessor A:
* Finish date: Mon, Dec 30, 2024
* Lag: 14
* Add predecessor B:
* Finish date: Thu, Jan 2, 2025
* Lag: 0
* Mode: Manual to Automatic
* Expected result:
* Start date: Tue, Jan 14, 2025 (closest predecessor, because of lag)
* Finish date: Thu, Jan 16, 2025
* Duration: 3
* Mode: Auto
* Working days only: on
* Relations: 2 predecessors
<br>
#### Scenario 27: Add children (parent in manual originally; children all manual, all in working days only)
* Setup (parent)
* Start date: Thu, Jan 8, Tuesday, January 15, 2025
* Finish date: Fri, Jan 10, 2025 Sunday, January 26, 2026
* Duration: 2
* Mode: Manual
* Working 8 days only: on
* Relations: none
* Change
* Add child 1:
* 16–20 Jan, 2025
* Working days only: on
* Duration: 3
* Mode: Manual
* Add child 2:
* 21-24 Jan, 2025
* Working days only: on
* Duration: 4
* Mode: Manual
* Expected result
* Start date: Tue, Jan 16, 2025
* Finish date Sun, Jan 24, 2025
* Mode: Automatic (automatically-set)
* \[open\] Should the switch to automatic mode be triggered even if the work package was previously in manual? How do we know if the user wanted it to be in manual (even after the addition of children) or if it was just in manual by default? Should there be a warning asking if the now-parent work package should automatically switch to automatic?
* Working days only: disabled
* Duration: 7
<br>
<br>
#### Scenario 28: Add children (parent in manual originally; children all manual, mixed working days)
* Setup
* Start date: Wed, Jan 15, 2025
* Finish date: Fri, Jan 17, 2025
* Duration: 2
* Mode: Manual
* Working days only: on
* Relations: none off.
* Change
* Add child 1:
* 16–20 Jan, January, 2025
* Working days only: off
* Duration: 3
* Mode: Manual days
* Add child 2:
* 21-26 Jan, January, 2025
* Working days only: on
* Duration: 6
* Mode: Manual days
* Expected result
* Start date: Thu, Jan 16, 2025
* Finish date: Sun, Jan 26, 2025
* Mode: Automatic (automatically-set)
* \[open\] Same question as above. How do we operate this switch to automatic?
* Working days only: disabled scheduling is enabled
* Duration: 9 or 11
* \[open\] How do we calculate duration for parent in mixed working days only mode?
<br>
#### Scenario 31: Add children Start date is set to a successor
* Setup:
* Start date: Wed, Jan 15, 2025
* Finish date: Sun, Jan 17, 2025
* Duration: 2
* Mode: Automatic
* Working days only: on
* Relations:
* 1 predecessor:
* Start date: Fri Jan 10, 2025
* Finish date: Mon, Jan 14, 2025
* Duration: 3
* Mode: Manual
* Working days only: on
* Relations: 1 follower
* Change
* <br>
* Add child 1:
* 16–20 Jan, 2025
* Working days only: off
* Duration: 3
* Mode: Manual
* Add child 2:
* 21-26 Jan, 2025
* Working days only: on
* Duration: 6
* Mode: Manual
* Expected result
* Start date: Thu, Jan Tuesday, January 16, 2025
* Finish date: Sun, Jan date is set to Sunday, January 26, 2025
* Mode: Automatic (remains in automatic)
* Working The "Working days only: only" field is disabled
* Duration: 9 or 11
* Banner: Dates Duration is derived from children
<br>
#### Scenario 32: Switch parent with predecessor and children to manual
* Setup:
* Start date: Thu, Jan 15, 2025
* Finish date: Sun, Jan 26, 2025
* Duration: 9 or 11
* Mode: Automatic
* Working days only: on
* Relations (3):
* Predecessor:
* Start date: Fri Jan 16, 2025
* Finish date: Mon, Jan 26, 2025
* Duration: 3
* Mode: Manual
* Working days only: on
* Child 1:
* 16–20 Jan, 2025
* Working days only: off
* Duration: 3
* Mode: Auto
* Relations: Precedes Child as 2
* Child 2:
* 21-26 Jan, 2025
* Working days only: on
* Duration: 6
* Mode: Auto
* Relations: Follows Child 1
* Change:
* Change mode of this parent to manual
* Expected result
* Start date: Thu, Jan 15, 2025
* Finish date: Sun, Jan 26, 2025
* Duration: 9 or 11
* Mode: Manual
* Working days only: on
* Relations (3):
* Predecessor: _(unchanged)_
* Start date: Thu, Jan 15, 2025
* \[open\] Maintained, why?
* Finish date: Sun, Jan 26, 2025
* \[open\] Maintained, why?
* Duration: 3
* Mode: Manual
* Working days only: on
* Child 1:
* 15–17 Jan, 2025 (now follows the predecessor)
* Working days only: off
* Duration: 3
* Mode: Auto
* Relations: Precedes Child 2
* Child 2:
* 21-26 Jan, 2025
* Working days only: on
* Duration: 6
* Mode: Auto
* Relations: Follows Child 1
**STILL A WORK IN PROGRESS**
**ADDITIONAL SCENARIOS CONCERNING THE SWITCH FROM/TO AUTOMATIC SCHEDULING TO FOLLOW**
This work package describes how values for the start date, the finish date and duration should change in response to changes to any of one of them. We created a [similar document with scenarios previously](https://community.openproject.org/wp/43539) when we added duration to the date picker, which made it easier:
* For devs to write test cases
* Document behaviour
* Use it for testing
Now with the upcoming [introduction of automatic scheduling](https://community.openproject.org/wp/59539), we need to reevaluate if the following scenarios are still relevant, if the behaviour is consistent and what news scenarios need to be added.
**THIS DOCUMENT IS A WORK IN PROGRESS, PLEASE DO NOT USE IT UNTIL THE STATUS IS SET TO 'TO BE SCHEDULED' or 'SCHEDULED'.**
### Scenarios (updated)
#### Scenario 1
* Setup
* Start date: Wednesday, January 8, 2025
* Finish date: empty
* Duration: empty
* Include non-working days: off
* Change
* User enters a duration of 10 days
* Expected result:
* The finish date is set Tuesday, January 21 2025 (derived)
<br>
#### Scenario 2
* Setup
* Start date: empty
* Finish date: empty
* Duration: empty
* Change
* User enters a duration of 10 days
* Expected result:
* No date is added
<br>
#### Scenario 3
* Setup
* Start date: empty
* Finish date: Tuesday, January 21 2025 (derived)
* Duration: empty
* Include non-working days: off
* Change
* User enters a duration of 10 days
* Expected result:
* The start date is set to Wednesday, January 8, 2025 (derived)
<br>
#### Scenario 4
* Setup
* Start date: Monday, January 13, 2025
* Finish date: Friday, January 24, 2025
* Duration: 10 days
* Include non-working days: off
* Change
* User changes duration to 11 days
* Expected result:
* The finish date is changed to Monday, January 27, 2025
<br>
#### Scenario 5
* Setup
* Start date: Monday, January 13, 2025
* Finish date: Monday, January 20, 2025
* Duration: 11
* Non-working days: off.
* Change
* User changes duration to 10 days
* Expected result:
* The finish date is changed to Friday, January 17, 2025
<br>
#### Scenario 6
* Setup
* Start date: Tuesday, January 7, 2025
* Finish date: Friday, January 9, 2025
* Duration: 3
* Change
* Remove duration by clearing duration field
* Expected result
* Finish date is also removed, start date is maintained as is:
* Start date: Tuesday, January 7, 2025
* Finish date: -
* Duration: -
<br>
#### Scenario 6a
* Setup
* Start date: Tuesday, January 7, 2025
* Finish date: Friday, January 9, 2025
* Duration: 3
* Change
* Remove duration by focusing duration field and clicking the "x"
* Expected result
* Finish date is also removed, start date is maintained as is:
* Start date: Tuesday, January 7, 2025
* Finish date: -
* Duration: -
<br>
#### Scenario 7
* Setup
* Start date: Monday, January 6, 2025
* Finish date: Thursday, January 9, 2025
* Duration: 4
* Change
* User alters the start date to Tuesday, January 7, 2025
* Expected result
* Finish date is maintained, duration is automatically adjusted to 3 days (derived; logic = changing one date when the other is present affects duration vs. move the second date).
* \[open\] Challenge?
<br>
#### Scenario 8
* Setup
* Start date: Monday, January 6, 2025
* Finish date: Thursday, January 9, 2025
* Duration: 4
* Change
* User alters the finish date to January 10, 2025
* Expected result
* Start date is unaffected, duration is now set to 5 days:
* Start date: Monday, January 6, 2025
* Finish date: Friday, January 10, 2025
* Duration: 5
#### Scenario 9
* Setup
* Start date: empty
* Finish date: empty
* Duration: 4
* Change
* User enters the finish date of Friday, January 10, 2025 (finish date in focus).
* Expected result
* The start date is set to Tuesday, January 7, 2025 (derived from duration):
* Start date: Tuesday, January 7, 2025
* Finish date: Friday, January 10, 2025
* Duration: 4
<br>
#### Scenario 10
* Setup
* Start date: empty
* Finish date: Thursday, January 9, 2025
* Duration: empty
* Change
* User enters the start date of Tuesday, January 7, 2025
* Expected result
* Duration is set to 3 (derived from start date):
* Start date: Tuesday, January 7, 2025
* Finish date: Thursday, January 9, 2025
* Duration: 3
<br>
#### Scenario 11
* Setup
* Start date: Monday, January 6, 2025
* Finish date: Thursday, January 9, 2025
* Duration: 4
* Change
* The user moves the drag handle on the left border (start date) of the box representing the work package in Gantt chart and Team planner one day to the right (to Tuesday, Jan 7, 2025)
* Expected result
* The duration is reduced to 3 days
* The start date is set Tuesday, January 7, 2025
* The finish date is left unchanged
<br>
#### Scenario 12 (GANTT/Team planner)
* Setup
* Start date: Monday, January 6, 2025
* Finish date: Wednesday, January 8, 2025
* Duration: 3
* Change
* The user moves the work package by dragging it (on the GANTT/team planner) it to the **right** so start date is Wednesday, January 8, 2025
* Expected result
* The duration is maintained. Start state is now January 8, 2025 (as set by drag), finish date is set to Friday, January 10, 2025 (derived based on duration).
<br>
#### Scenario 12bis (GANTT/Team planner)
* Setup
* Start date: Wednesday, January 8, 2025
* Finish date: Friday, January 10, 2025
* Duration: 3
* Change
* The user moves the work package by dragging it (on the GANTT/team planner) it to the **left** so start date is Monday, January 6, 2025.
* Expected result
* The duration is maintained. Start state is now Monday, January 6, 2025 (as set by drag), finish date is set to Wednesday, January 8, 2025 (derived based on duration)
<br>
#### Scenario 13
* Setup
* Start date: Tuesday, January 7, 2025
* Finish date: Thursday, January 9, 2025
* Duration: 3
* Change
* The user changes the start day on the date picker to Wednesday, February 5, 2025 (note that this is _after_ the original finish date)
* Expected result
* The start date is set to Wednesday, February 5
* The finish date is cleared
* Duration is cleared
<br>
#### Scenario 13a
* Setup
* Start date: Thursday, January 23, 2025
* Finish date: empty
* Duration: empty
* Today's date is Tuesday, January 21, 2025
* Change
* The user clicks the "Today" link under the Finish date field
* Expected result
* The finish date is set to Tuesday, February 9, 2021
* The start date is cleared
* Duration is cleared
<br>
#### Scenario 14
* Setup
* Start date: Tuesday, January 7, 2025
* Finish date: Thursday, January 9, 2025
* Duration: 3
* Change
* The user changes the start day on the date picker to Monday, January 6, 2025 (note that this is _before_ the original start date).
* Expected result
* The start date is now Monday, January 6, 2025
* The finish date is now Wednesday, January 8, 2025
* The duration is conserved: 3 days.
<br>
#### Scenario 15
* Setup
* Start date: Thursday, January 7, 2025
* Finish date: Tuesday, January 14, 2025
* Duration: 4
* Include non-working days: off
* Change
* Include non-working days: on
* Expected result
* Start date remains Thursday, January 7, 2025
* Finish date is changed to Sunday, January 12, 2025
* Duration is conserved (4 days)
<br>
#### Scenario 16
* Setup
* Start date: Thursday, January 7, 2025
* Finish date: Sunday, January 12, 2025
* Duration: 4
* Include non-working days: on
* Change
* Include non-working days: off
* Expected result
* Start date remains Thursday, January 7, 2025
* Finish date is changed to Tuesday, January 14, 2025
* Duration is conserved (4 days)
####
#### Scenario 17
* Setup
* Start date: Saturday, January 11, 2025
* Finish date: Sunday, January 12, 2025
* Include non-working days: on
* Duration: 2
* Change
* Include non-working days: off
* Expected result
* Start date changes to Monday, January 13, 2025
* Finish date is changed to Tuesday, January 14, 2025
* Duration is conserved (2 days)
<br>
#### Scenario 18
* Setup
* Start date: Saturday, January 11, 2025
* Finish date: Tuesday, January 21, 2025
* Include non-working days: on
* Duration: 11 days
<br>
* Change
* Include non-working days: off
* Expected result
* Start date changes to Monday, January 13, 2025
* Finish date is changed to Monday, January 27, 2025
* Duration is conserved (11 days)
####
#### Scenario 19
* Setup
* Start date: Saturday, January 11, 2025
* Finish date: -
* Include non-working days: on
* Duration: -
* Change
* Include non-working days: off
* Expected result
* Start date changes to Monday, January 13, 2025
* Finish date is still empty
* Duration is still empty
<br>
#### Scenario 20
* Setup
* Start date: -
* Finish date: Sunday, January 12, 2025
* Include non-working days: on
* Duration: -
* Change
* Include non-working days: off
* Expected result
* Start date is still empty
* Finish date is Monday, February 13, 2025
* Duration is still empty
####
#### Scenario 21a
* Setup
* Start date: Saturday, January 11, 2025
* Finish date: Sunday, January 12, 2025
* Include non-working days: on
* Duration: 2
* Change
* Clear start date
* Expected result
* Start date is removed
* Duration is removed
* Finish date is maintained at Sunday, January 12, 2025
####
#### Scenario 21b
* Setup
* Start date: Saturday, January 11, 2025
* Finish date: Sunday, January 12, 2025
* Include non-working days: on
* Duration: 2
* Change
* Finish date is cleared
* Expected result
* Start date is maintained at Saturday, January 11, 2025
* Finish date is removed
* Duration is removed
<br>
#### Scenario 22a
* Setup
* Start date: Thursday, January 9, 2025
* Finish date: -
* Duration: -
* Change
* With duration in focus, click on Wednesday, January 8, 2025
* Note: this is one day _earlier_ than the current start date
* Expected result
* Start date is updated to at Wednesday, January 8, 2025 (the clicked date)
* Finish date is set to Thursday, January 9, 2025 (the previous start date)
* Focus is set to start date
* \[open\] Challenge?
* Duration is derived as 2 days
####
#### Scenario 22b
* Setup
* Start date: Thursday, January 9, 2025
* Finish date: -
* Duration: -
* Change
* With duration in focus, click on Friday, January 10, 2025
* Note: this is one day _after_ than the current start date
* Expected result
* Start date stays at Thursday, January 9, 2025
* Finish date is set to Friday, January 10, 2025
* Duration is derived as 2 days
* Focus is set to start date
* \[open\] Challenge?
####
#### Scenario 23a
* Setup
* Start date: empty
* Finish date: Thursday, January 9, 2025
* Duration: empty
* Change
* With duration in focus, click on Friday, January 10, 2025
* Expected result
* Start date is set to Thursday, January 9, 2025 (the previous finish date)
* Finish date is updated to Friday, January 10, 2025 (the clicked date)
* Duration is derived as 2 days
* Focus is set to start date
* \[open\] Challenge?
<br>
#### Scenario 23b
* Setup
* Start date: empty
* Finish date: Thursday, January 9, 2025
* Duration: empty
* Change
* With duration in focus, click on Wednesday, January 8, 2025
* Expected result
* Start date is set to Wednesday, January 8, 2025 (the clicked date)
* Finish date remains Thursday, January 9, 2025
* Duration is derived as 2 days
* Focus is set to start date
* \[open\] Challenge?
<br>
### New scenarios added for automatic scheduling
<br>
#### Scenario 24: Manual to automatic with no predecessors or children
* Setup:
* Start date: Wed, Jan 8, 2025
* Finish date: Fri, Jan 10, 2025
* Duration: 3
* Mode: Manual
* Working days only: on
* Relations: none
* Change:
* Switch to automatic
* Expected result:
* Not possible (no predecessors or children)
<br>
#### Scenario 25: Add a predecessor
* Setup:
* Start date: Wed, Jan 8, 2025
* Finish date: Fri, Jan 10, 2025
* Duration: 3
* Mode: Manual
* Working days only: on
* Relations: none
* Change:
* Add 1 predecessor:
* Finish date: Thurs, Jan 2, 2025
* Lag: 0
* Mode: Manual to Automatic
* Expected result:
* Start date: Fri, Jan 3, 2025 (one day after predecessor)
* Finish date: Tue, Jan 7, 2025
* Duration: 3
* Mode: Auto
* Working days only: on
* Relations: 1 predecessor
<br>
#### Scenario 26a: Manual to automatic with multiple predecessors (no lag)
* Setup:
* Start date: Wed, Jan 8, 2025
* Finish date: Fri, Jan 10, 2025
* Duration: 3
* Mode: Manual
* Working days only: on
* Relations: none
* Change:
* Add predecessor A:
* Finish date: Mon, Dec 30, 2024
* Lag: 0
* Add predecessor B:
* Finish date: Thurs, Jan 2, 2025
* Lag: 0
* Mode: Manual to Automatic
* Expected result:
* Start date: Fri, Jan 3, 2025 (closest predecessor)
* Finish date: Tue, Jan 7, 2025
* Duration: 3
* Mode: Auto
* Working days only: on
* Relations: 2 predecessors
<br>
#### Scenario 26b: Manual to automatic with multiple predecessors (with lag)
* Setup:
* Start date: Wed, Jan 8, 2025
* Finish date: Fri, Jan 10, 2025
* Duration: 3
* Mode: Manual
* Working days only: on
* Relations: none
* Change:
* Add predecessor A:
* Finish date: Mon, Dec 30, 2024
* Lag: 14
* Add predecessor B:
* Finish date: Thu, Jan 2, 2025
* Lag: 0
* Mode: Manual to Automatic
* Expected result:
* Start date: Tue, Jan 14, 2025 (closest predecessor, because of lag)
* Finish date: Thu, Jan 16, 2025
* Duration: 3
* Mode: Auto
* Working days only: on
* Relations: 2 predecessors
<br>
#### Scenario 27: Add children (parent in manual originally; children all manual, all in working days only)
* Setup (parent)
* Start date: Thu, Jan 8,
* Finish date: Fri, Jan 10, 2025
* Duration: 2
* Mode: Manual
* Working
* Relations: none
* Change
* Add child 1:
* 16–20 Jan, 2025
* Working days only: on
* Duration: 3
* Mode: Manual
* Add child 2:
* 21-24 Jan, 2025
* Working days only: on
* Duration: 4
* Mode: Manual
* Expected result
* Start date: Tue, Jan 16, 2025
* Finish date Sun, Jan 24, 2025
* Mode: Automatic (automatically-set)
* \[open\] Should the switch to automatic mode be triggered even if the work package was previously in manual? How do we know if the user wanted it to be in manual (even after the addition of children) or if it was just in manual by default? Should there be a warning asking if the now-parent work package should automatically switch to automatic?
* Working days only: disabled
* Duration: 7
<br>
<br>
#### Scenario 28: Add children (parent in manual originally; children all manual, mixed working days)
* Setup
* Start date: Wed, Jan 15, 2025
* Finish date: Fri, Jan 17, 2025
* Duration: 2
* Mode: Manual
* Working days only: on
* Relations: none
* Change
* Add child 1:
* 16–20 Jan,
* Working days only: off
* Duration: 3
* Mode: Manual
* Add child 2:
* 21-26 Jan,
* Working days only: on
* Duration: 6
* Mode: Manual
* Expected result
* Start date: Thu, Jan 16, 2025
* Finish date: Sun, Jan 26, 2025
* Mode: Automatic (automatically-set)
* \[open\] Same question as above. How do we operate this switch to automatic?
* Working days only: disabled
* Duration: 9 or 11
* \[open\] How do we calculate duration for parent in mixed working days only mode?
<br>
#### Scenario 31: Add children
* Setup:
* Start date: Wed, Jan 15, 2025
* Finish date: Sun, Jan 17, 2025
* Duration: 2
* Mode: Automatic
* Working days only: on
* Relations:
* 1 predecessor:
* Start date: Fri Jan 10, 2025
* Finish date: Mon, Jan 14, 2025
* Duration: 3
* Mode: Manual
* Working days only: on
* Relations: 1 follower
* Change
* <br>
* Add child 1:
* 16–20 Jan, 2025
* Working days only: off
* Duration: 3
* Mode: Manual
* Add child 2:
* 21-26 Jan, 2025
* Working days only: on
* Duration: 6
* Mode: Manual
* Expected result
* Start date: Thu, Jan
* Finish date: Sun, Jan
* Mode: Automatic (remains in automatic)
* Working
* Duration: 9 or 11
* Banner: Dates
<br>
#### Scenario 32: Switch parent with predecessor and children to manual
* Setup:
* Start date: Thu, Jan 15, 2025
* Finish date: Sun, Jan 26, 2025
* Duration: 9 or 11
* Mode: Automatic
* Working days only: on
* Relations (3):
* Predecessor:
* Start date: Fri Jan 16, 2025
* Finish date: Mon, Jan 26, 2025
* Duration: 3
* Mode: Manual
* Working days only: on
* Child 1:
* 16–20 Jan, 2025
* Working days only: off
* Duration: 3
* Mode: Auto
* Relations: Precedes Child
* Child 2:
* 21-26 Jan, 2025
* Working days only: on
* Duration: 6
* Mode: Auto
* Relations: Follows Child 1
* Change:
* Change mode of this parent to manual
* Expected result
* Start date: Thu, Jan 15, 2025
* Finish date: Sun, Jan 26, 2025
* Duration: 9 or 11
* Mode: Manual
* Working days only: on
* Relations (3):
* Predecessor: _(unchanged)_
* Start date: Thu, Jan 15, 2025
* \[open\] Maintained, why?
* Finish date: Sun, Jan 26, 2025
* \[open\] Maintained, why?
* Duration: 3
* Mode: Manual
* Working days only: on
* Child 1:
* 15–17 Jan, 2025 (now follows the predecessor)
* Working days only: off
* Duration: 3
* Mode: Auto
* Relations: Precedes Child 2
* Child 2:
* 21-26 Jan, 2025
* Working days only: on
* Duration: 6
* Mode: Auto
* Relations: Follows Child 1
**STILL A WORK IN PROGRESS**
**ADDITIONAL SCENARIOS CONCERNING THE SWITCH FROM/TO AUTOMATIC SCHEDULING TO FOLLOW**