Skip to main content
Glama
test-7-no-payment.md6.68 kB
# Test Case 4: No Payment Received ## Description Validate system behavior when no transaction matching the criteria is found. ## Requirements - On-chain query returns no results - Should handle timeout or failure gracefully ## Sequence Diagram ```mermaid sequenceDiagram participant JEST as Jest Test participant WALLET as Wallet Server participant SERVICE as Wallet Service participant BLOCKCHAIN as Blockchain JEST->>WALLET: GET /wallet/balance WALLET-->>JEST: Initial Balance Note over JEST,BLOCKCHAIN: Setup: No transactions sent JEST->>WALLET: GET /wallet/transactions WALLET->>SERVICE: Query Recent Transactions SERVICE->>BLOCKCHAIN: Check for Pending Transactions BLOCKCHAIN-->>SERVICE: No Transactions Found SERVICE-->>WALLET: Empty Transaction List WALLET-->>JEST: No Transactions JEST->>WALLET: GET /wallet/balance WALLET-->>JEST: Unchanged Balance Note over JEST: Assert: Balance unchanged Note over JEST: Assert: No transactions in list Note over JEST: Assert: System handles gracefully ``` ## Test Flow ```mermaid graph TD START[Test Start] --> CHECK_BALANCE[Check Initial Balance] CHECK_BALANCE --> SETUP_NO_TX[Setup: No Transactions] SETUP_NO_TX --> QUERY_TX[Query for Transactions] QUERY_TX --> TX_FOUND{Transactions<br/>Found?} TX_FOUND -->|Yes| ASSERT_FAILURE[Assert Failure - Unexpected] TX_FOUND -->|No| ASSERT_SUCCESS[Assert Success - Expected] ASSERT_SUCCESS --> END[Test End] ASSERT_FAILURE --> END style START fill:#e1f5fe style ASSERT_SUCCESS fill:#e8f5e8 style ASSERT_FAILURE fill:#ffebee style TX_FOUND fill:#fff3e0 ``` ## HTTP API Calls ```mermaid graph LR JEST[Jest Test] --> GET_BALANCE[GET /wallet/balance] JEST --> GET_TRANSACTIONS[GET /wallet/transactions] JEST --> GET_PENDING[GET /wallet/pending] JEST --> GET_STATUS[GET /wallet/status] GET_BALANCE --> WALLET[Wallet Server] GET_TRANSACTIONS --> WALLET GET_PENDING --> WALLET GET_STATUS --> WALLET WALLET --> SERVICE[Wallet Service] SERVICE --> BLOCKCHAIN[Blockchain] style JEST fill:#e1f5fe style WALLET fill:#fff3e0 style SERVICE fill:#f3e5f5 style BLOCKCHAIN fill:#e8f5e8 ``` ## Transaction Query Logic ```mermaid graph TD QUERY[Query Transactions] --> SET_CRITERIA[Set Query Criteria] SET_CRITERIA --> TIME_RANGE[Set Time Range] TIME_RANGE --> SENDER_FILTER[Set Sender Filter] SENDER_FILTER --> STATUS_FILTER[Set Status Filter] STATUS_FILTER --> EXECUTE_QUERY[Execute Query] EXECUTE_QUERY --> QUERY_RESULT[Get Query Result] QUERY_RESULT --> RESULT_TYPE{Result<br/>Type?} RESULT_TYPE -->|Empty| EMPTY_RESULT[Empty Result] RESULT_TYPE -->|Has Data| HAS_DATA[Has Transaction Data] RESULT_TYPE -->|Error| QUERY_ERROR[Query Error] EMPTY_RESULT --> HANDLE_EMPTY[Handle Empty Result] HAS_DATA --> PROCESS_DATA[Process Transaction Data] QUERY_ERROR --> HANDLE_ERROR[Handle Query Error] HANDLE_EMPTY --> SUCCESS[Query Success - No Data] PROCESS_DATA --> SUCCESS[Query Success - Has Data] HANDLE_ERROR --> FAILURE[Query Failed] style QUERY fill:#e1f5fe style SUCCESS fill:#e8f5e8 style FAILURE fill:#ffebee style RESULT_TYPE fill:#fff3e0 ``` ## Empty State Handling ```mermaid graph TD EMPTY_STATE[Empty Transaction State] --> CHECK_TIMEOUT[Check for Timeout] CHECK_TIMEOUT --> TIMEOUT_REACHED{Timeout<br/>Reached?} TIMEOUT_REACHED -->|Yes| TIMEOUT_ERROR[Timeout Error] TIMEOUT_REACHED -->|No| CHECK_RETRY[Check Retry Logic] CHECK_RETRY --> RETRY_COUNT{Retry Count<br/>Exceeded?} RETRY_COUNT -->|Yes| MAX_RETRIES[Max Retries Reached] RETRY_COUNT -->|No| RETRY_QUERY[Retry Query] RETRY_QUERY --> QUERY_AGAIN[Query Again] QUERY_AGAIN --> EMPTY_STATE TIMEOUT_ERROR --> HANDLE_TIMEOUT[Handle Timeout] MAX_RETRIES --> HANDLE_MAX_RETRIES[Handle Max Retries] HANDLE_TIMEOUT --> GRACEFUL_FAILURE[Graceful Failure] HANDLE_MAX_RETRIES --> GRACEFUL_FAILURE GRACEFUL_FAILURE --> RETURN_EMPTY[Return Empty Result] RETURN_EMPTY --> SUCCESS[Test Success] style EMPTY_STATE fill:#e1f5fe style SUCCESS fill:#e8f5e8 style TIMEOUT_REACHED fill:#fff3e0 style RETRY_COUNT fill:#f3e5f5 ``` ## Graceful Degradation Flow ```mermaid graph TD NO_DATA[No Transaction Data] --> DEGRADATION[Graceful Degradation] DEGRADATION --> CHECK_ALTERNATIVE[Check Alternative Sources] CHECK_ALTERNATIVE --> ALTERNATIVE_AVAILABLE{Alternative<br/>Available?} ALTERNATIVE_AVAILABLE -->|Yes| USE_ALTERNATIVE[Use Alternative Source] ALTERNATIVE_AVAILABLE -->|No| USE_DEFAULT[Use Default Response] USE_ALTERNATIVE --> ALTERNATIVE_DATA[Get Alternative Data] USE_DEFAULT --> DEFAULT_RESPONSE[Return Default Response] ALTERNATIVE_DATA --> VALIDATE_ALTERNATIVE[Validate Alternative Data] VALIDATE_ALTERNATIVE --> ALTERNATIVE_VALID{Alternative<br/>Valid?} ALTERNATIVE_VALID -->|Yes| RETURN_ALTERNATIVE[Return Alternative Data] ALTERNATIVE_VALID -->|No| USE_DEFAULT RETURN_ALTERNATIVE --> SUCCESS[Success with Alternative] DEFAULT_RESPONSE --> SUCCESS[Success with Default] style NO_DATA fill:#e1f5fe style SUCCESS fill:#e8f5e8 style ALTERNATIVE_AVAILABLE fill:#fff3e0 style ALTERNATIVE_VALID fill:#f3e5f5 ``` ## Error Handling for No Data ```mermaid graph TD NO_DATA_ERROR[No Data Error] --> ERROR_TYPE{Error<br/>Type?} ERROR_TYPE -->|Timeout| TIMEOUT[Timeout Error] ERROR_TYPE -->|Network| NETWORK[Network Error] ERROR_TYPE -->|Empty| EMPTY[Empty Result Error] TIMEOUT --> HANDLE_TIMEOUT[Handle Timeout] NETWORK --> HANDLE_NETWORK[Handle Network Error] EMPTY --> HANDLE_EMPTY[Handle Empty Result] HANDLE_TIMEOUT --> TIMEOUT_RESPONSE[Timeout Response] HANDLE_NETWORK --> NETWORK_RESPONSE[Network Error Response] HANDLE_EMPTY --> EMPTY_RESPONSE[Empty Result Response] TIMEOUT_RESPONSE --> ERROR_CODE[Set Error Code: 408] NETWORK_RESPONSE --> ERROR_CODE[Set Error Code: 503] EMPTY_RESPONSE --> ERROR_CODE[Set Error Code: 204] ERROR_CODE --> ERROR_MESSAGE[Create Error Message] ERROR_MESSAGE --> RETURN_RESPONSE[Return Response] RETURN_RESPONSE --> CLIENT_HANDLES[Client Handles Response] CLIENT_HANDLES --> ASSERT_RESPONSE[Assert Correct Response] ASSERT_RESPONSE --> TEST_PASSES[Test Passes] style NO_DATA_ERROR fill:#ffebee style TEST_PASSES fill:#e8f5e8 style ERROR_TYPE fill:#fff3e0 ```

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/evilpixi/pixi-midnight-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server