67 lines
2.5 KiB
Gherkin
67 lines
2.5 KiB
Gherkin
Feature: API Error Handling
|
|
As a developer
|
|
I want the tracker to handle API errors gracefully
|
|
So that failures don't crash the application
|
|
|
|
Background:
|
|
Given an authenticated sheets tracker
|
|
|
|
Scenario: Handle API failure during status retrieval
|
|
Given the Google Sheets API will fail for get operation
|
|
When I get the status of "wordnet"
|
|
Then the operation should return None values gracefully
|
|
And no exception should be raised
|
|
|
|
Scenario: Handle API failure during status update
|
|
Given a sheet with the following datasets
|
|
| Dataset Name | Status | Error |
|
|
| wordnet | NOT STARTED | |
|
|
And the Google Sheets API will fail for update operation
|
|
When I attempt to mark "wordnet" as in progress
|
|
Then the update should fail gracefully
|
|
And no exception should be raised
|
|
|
|
Scenario: Handle API failure during header loading
|
|
Given the Google Sheets API will fail when loading headers
|
|
When I create a sheets tracker
|
|
Then the tracker should use default column indices
|
|
And authentication should still succeed
|
|
|
|
Scenario: Handle network timeout during API call
|
|
Given the Google Sheets API will timeout
|
|
When I get the status of "wordnet"
|
|
Then the operation should return None values gracefully
|
|
And no exception should be raised
|
|
|
|
Scenario: Handle malformed API response
|
|
Given the Google Sheets API will return malformed response
|
|
When I get the status of "wordnet"
|
|
Then the operation should handle the error gracefully
|
|
And return None values
|
|
|
|
Scenario: Handle API rate limiting
|
|
Given the Google Sheets API will return rate limit error
|
|
When I attempt to update status for "wordnet"
|
|
Then the update should fail gracefully
|
|
And no exception should be raised
|
|
|
|
Scenario: Handle authentication expiration during operation
|
|
Given an authenticated sheets tracker
|
|
And authentication will expire during operation
|
|
When I attempt to get status of "wordnet"
|
|
Then the operation should return None values gracefully
|
|
And no exception should be raised
|
|
|
|
Scenario: Get status when sheet is None but authenticated is True
|
|
Given a tracker with authenticated=True but sheet=None
|
|
When I get the status of "wordnet"
|
|
Then the status should be None
|
|
And the error should be None
|
|
And the row should be None
|
|
|
|
Scenario: Update status when sheet is None but authenticated is True
|
|
Given a tracker with authenticated=True but sheet=None
|
|
When I attempt to update status for "wordnet"
|
|
Then the update should return False
|
|
|