Files
dataset-uploader/features/google_sheets_tracker/update_status_edge_cases.feature

60 lines
2.3 KiB
Gherkin

Feature: Update Status Edge Cases
As a developer
I want status updates to handle edge cases correctly
So that the tracker works reliably in all scenarios
Background:
Given an authenticated sheets tracker
Scenario: Update status when status column is missing
Given a sheet with headers "Dataset Name, Error"
And a sheet with the following datasets
| Dataset Name | Error |
| wordnet | |
When I attempt to update status for "wordnet"
Then the update should handle missing status column gracefully
And error column should still be updated if present
Scenario: Update status when error column is missing
Given a sheet with headers "Dataset Name, Status"
And a sheet with the following datasets
| Dataset Name | Status |
| wordnet | NOT STARTED |
When I mark "wordnet" with error "Test error"
Then the update should handle missing error column gracefully
And status column should still be updated
Scenario: Update status when both columns are missing
Given a sheet with headers "Dataset Name"
And a sheet with the following datasets
| Dataset Name |
| wordnet |
When I attempt to update status for "wordnet"
Then the update should fail gracefully
And no exception should be raised
Scenario: Update status with empty error message
Given a sheet with the following datasets
| Dataset Name | Status | Error |
| wordnet | IN PROGRESS | Previous error |
When I mark "wordnet" as completed with empty error
Then the error column should be cleared
And the status should be updated to "DONE"
Scenario: Update status with None error message
Given a sheet with the following datasets
| Dataset Name | Status | Error |
| wordnet | IN PROGRESS | Previous error |
When I mark "wordnet" as completed with None error
Then the error column should be cleared
And the status should be updated to "DONE"
Scenario: Update status with very long status value
Given a sheet with the following datasets
| Dataset Name | Status | Error |
| wordnet | NOT STARTED | |
When I attempt to update status with very long value
Then the update should succeed
And no exception should be raised