61 lines
3.1 KiB
Markdown
61 lines
3.1 KiB
Markdown
## ADDED Requirements
|
|
|
|
### Requirement: Create team member
|
|
The system SHALL allow authorized users to create new team members with name, role, hourly rate, and active status.
|
|
|
|
#### Scenario: Successful team member creation
|
|
- **WHEN** a manager creates a team member with valid name "John Doe", role "Backend Developer", and hourly rate $150
|
|
- **THEN** the system creates the team member with active status set to true by default
|
|
- **AND** the system assigns a unique identifier to the team member
|
|
- **AND** the system returns the created team member details
|
|
|
|
#### Scenario: Invalid hourly rate
|
|
- **WHEN** a manager attempts to create a team member with hourly rate of $0 or negative value
|
|
- **THEN** the system rejects the request with validation error "Hourly rate must be greater than 0"
|
|
|
|
#### Scenario: Missing required fields
|
|
- **WHEN** a manager attempts to create a team member without name or role
|
|
- **THEN** the system rejects the request with validation error listing missing required fields
|
|
|
|
### Requirement: View team members
|
|
The system SHALL allow authorized users to view the list of team members with their details.
|
|
|
|
#### Scenario: View all team members
|
|
- **WHEN** a manager requests the team members list
|
|
- **THEN** the system returns all team members with name, role, hourly rate, and active status
|
|
- **AND** the list includes both active and inactive team members
|
|
|
|
#### Scenario: Filter active team members only
|
|
- **WHEN** a manager requests team members filtered by active status
|
|
- **THEN** the system returns only team members where active is true
|
|
|
|
### Requirement: Update team member
|
|
The system SHALL allow authorized users to update team member details including role, hourly rate, and active status.
|
|
|
|
#### Scenario: Successful update
|
|
- **WHEN** a manager updates a team member's hourly rate from $150 to $175
|
|
- **THEN** the system updates the team member record
|
|
- **AND** the system returns the updated team member details
|
|
|
|
#### Scenario: Deactivate team member
|
|
- **WHEN** a manager sets a team member's active status to false
|
|
- **THEN** the system marks the team member as inactive
|
|
- **AND** the system preserves all historical allocation and actuals data for the team member
|
|
|
|
#### Scenario: Cannot update non-existent team member
|
|
- **WHEN** a manager attempts to update a team member that does not exist
|
|
- **THEN** the system returns a 404 Not Found error
|
|
|
|
### Requirement: Cannot delete team member with allocations
|
|
The system SHALL prevent deletion of team members who have active allocations or logged actuals.
|
|
|
|
#### Scenario: Attempt to delete team member with allocations
|
|
- **WHEN** a manager attempts to delete a team member who has allocations in current or future months
|
|
- **THEN** the system rejects the deletion with error "Cannot delete team member with active allocations"
|
|
- **AND** the system suggests deactivating the team member instead
|
|
|
|
#### Scenario: Attempt to delete team member with actuals
|
|
- **WHEN** a manager attempts to delete a team member who has logged actuals
|
|
- **THEN** the system rejects the deletion with error "Cannot delete team member with historical data"
|
|
- **AND** the system suggests deactivating the team member instead
|