Test Name: Story file upload populates story input
Feature: Story Coverage file upload validation
Traceability:
@SHIFT-55
Description: Verifies that uploading a story file correctly populates the story input area, displays the filename, and keeps the Check Coverage button disabled until test cases are also provided.
This Test Verifies:
| Verification Step | What It Checks |
| When I upload a story file |
A story file can be uploaded to the Story Coverage page |
| Then the story input is populated |
The story content appears in the input area after upload |
| And the story filename is shown |
The uploaded file's name is displayed to the user |
| And the Check Coverage button remains disabled until test cases are provided |
The action button stays inactive when only a story is provided and test cases are still missing |
Test Name: Test case file upload populates test input
Feature: Story Coverage file upload validation
Traceability:
@SHIFT-55
Description: Verifies that uploading a test case file correctly populates the test input area, displays the filename, and keeps the Check Coverage button disabled until a story is also provided.
This Test Verifies:
| Verification Step | What It Checks |
| When I upload a test case file |
A test case file can be uploaded to the Story Coverage page |
| Then the test input is populated |
The test case content appears in the input area after upload |
| And the test case filename is shown |
The uploaded file's name is displayed to the user |
| And the Check Coverage button remains disabled until a story is provided |
The action button stays inactive when only test cases are provided and a story is still missing |
Test Name: Pasting a story that exceeds the character limit shows an error
Feature: Story Coverage file upload validation
Traceability:
@SHIFT-55
Description: Verifies that pasting story content exceeding the 50,000-character limit produces a clear error message indicating the content is too long.
This Test Verifies:
| Verification Step | What It Checks |
| When I paste 50001 characters into the story input |
The system enforces the maximum character limit when content is pasted |
| Then I see a story paste error containing 'too long' |
A meaningful error message is shown to the user when the character limit is exceeded |
Test Name: Pasting a story at exactly the character limit is accepted
Feature: Story Coverage file upload validation
Traceability:
@SHIFT-55
Description: Verifies that pasting story content at exactly the 50,000-character limit is accepted without errors and the input is populated.
This Test Verifies:
| Verification Step | What It Checks |
| When I paste 50000 characters into the story input |
Content at the exact character boundary is not rejected |
| Then no paste error is shown |
No error message appears when the content is within the allowed limit |
| And the story input is populated |
The pasted content is successfully placed into the story input area |
Test Name: Uploading an unsupported file type to the story input shows an inline error
Feature: Story Coverage file upload validation
Traceability:
@SHIFT-55
Description: Verifies that uploading a file of an unsupported type to the story input displays an inline error and leaves the story input empty.
This Test Verifies:
| Verification Step | What It Checks |
| When I upload an unsupported file to the story input |
The system handles files with unsupported formats gracefully |
| Then the story dropzone shows an unsupported file type error |
A clear error message is shown within the upload area informing the user the file type is not accepted |
| And the story input is empty |
No content is loaded into the story input when an unsupported file is rejected |
Test Name: Dropping multiple files onto the test case input shows a dismissible warning
Feature: Story Coverage file upload validation
Traceability:
@SHIFT-55
Description: Verifies that dropping multiple files onto the test case upload area shows a warning, leaves the input empty, and allows the user to dismiss the warning.
This Test Verifies:
| Verification Step | What It Checks |
| When I drop multiple files onto the story coverage test case input |
The system detects and responds to a multi-file drop on the test case upload area |
| Then the test case input shows a multi-file drop warning |
A warning message is displayed informing the user that only one file is accepted |
| And the test input is empty |
No content is loaded into the test case input when multiple files are dropped |
| When I dismiss the test case multi-file drop warning |
The user can actively close the warning message |
| Then the test case multi-file drop warning is dismissed |
The warning disappears from the page after the user dismisses it |
Test Name: Story file upload populates story input
Feature: Story Coverage file upload validation
Traceability:
@SHIFT-55
Execution:
Tag: @file-validation
Journey: A user uploads a story file and verifies the story input is populated with the filename displayed, while the Check Coverage button remains disabled until test cases are also provided.
| Scenario |
Given Context |
When Action |
Then Assertion |
Gherkin Type |
|
Story file upload populates story input
|
User is on the Story Coverage page
|
User uploads a story file
|
Story input is populated, story filename is shown, and Check Coverage button remains disabled without test cases
|
Positive
|
Test Name: Test case file upload populates test input
Feature: Story Coverage file upload validation
Traceability:
@SHIFT-55
Execution:
Tag: @file-validation
Journey: A user uploads a test case file and verifies the test input is populated with the filename displayed, while the Check Coverage button remains disabled until a story is also provided.
| Scenario |
Given Context |
When Action |
Then Assertion |
Gherkin Type |
|
Test case file upload populates test input
|
User is on the Story Coverage page
|
User uploads a test case file
|
Test input is populated, test case filename is shown, and Check Coverage button remains disabled without a story
|
Positive
|
Test Name: Pasting a story that exceeds the character limit shows an error
Feature: Story Coverage file upload validation
Traceability:
@SHIFT-55
Execution:
Tag: @file-validation
Journey: A user pastes content exceeding the 50,000 character limit into the story input and sees an error indicating the pasted text is too long.
| Scenario |
Given Context |
When Action |
Then Assertion |
Gherkin Type |
|
Pasting a story that exceeds the character limit shows an error
|
User is on the Story Coverage page
|
User pastes 50001 characters into the story input
|
A paste error message containing 'too long' is displayed
|
Boundary
|
Test Name: Pasting a story at exactly the character limit is accepted
Feature: Story Coverage file upload validation
Traceability:
@SHIFT-55
Execution:
Tag: @file-validation
Journey: A user pastes content at exactly the 50,000 character limit into the story input and verifies no error is shown and the input is successfully populated.
| Scenario |
Given Context |
When Action |
Then Assertion |
Gherkin Type |
|
Pasting a story at exactly the character limit is accepted
|
User is on the Story Coverage page
|
User pastes 50000 characters into the story input
|
No paste error is shown and the story input is populated
|
Boundary
|
Test Name: Uploading an unsupported file type to the story input shows an inline error
Feature: Story Coverage file upload validation
Traceability:
@SHIFT-55
Execution:
Tag: @file-validation
Journey: A user uploads a file of an unsupported type to the story dropzone and verifies an inline error is shown while the story input remains empty.
| Scenario |
Given Context |
When Action |
Then Assertion |
Gherkin Type |
|
Uploading an unsupported file type to the story input shows an inline error
|
User is on the Story Coverage page
|
User uploads an unsupported file to the story input
|
Story dropzone shows an unsupported file type error and the story input remains empty
|
Negative
|
Test Name: Dropping multiple files onto the test case input shows a dismissible warning
Feature: Story Coverage file upload validation
Traceability:
@SHIFT-55
Execution:
Tag: @file-validation
Journey: A user drops multiple files onto the test case input, sees a multi-file drop warning with the input remaining empty, and then dismisses the warning successfully.
| Scenario |
Given Context |
When Action |
Then Assertion |
Gherkin Type |
|
Dropping multiple files onto the test case input shows a dismissible warning
|
User is on the Story Coverage page
|
User drops multiple files onto the test case input, then dismisses the warning
|
A multi-file drop warning is shown and the test input is empty; after dismissal the warning is no longer visible
|
Edge Case
|