Test
The test method verifies if the authentication credentials are valid by making a simple API request to the external service.
This method is crucial for validating connections and providing immediate feedback to users during the connection setup process.
Implementation
This method can be implemented in JavaScript or YAML.
JavaScript Implementation
The test method is typically implemented in JavaScript:
// File: auth/test.js
export default async function tet(context) {
try {
// Make a simple API request that requires authentication
const responseData = await context.apiClient.get('/user/profile');
// Optional: check specific data in the response
if (responseData.accountStatus === 'active') {
return true;
}
return false;
} catch (error) {
// Log the error for debugging
console.error('Authentication test failed:', error);
// Return false to indicate test failure
return false;
// Alternatively, throw an error with more details
// throw new Error(`Authentication test failed: ${error.message}`);
}
};In your spec.yml:
auth:
# ...other auth settings
test:
implementationType: javascriptAPI Request Implementation
The test method can also be implemented by defining an API request and response mapping:
path: /current-user
method: get
responseMapping:
$eval:
$var: $.response.id
isNotEmpty: trueIn your spec.yml:
auth:
# ...other auth settings
test:
implementationType: mappingInput Context
The test method receives a context object with these properties:
| Property | Description |
|---|---|
connectorParameters | Parameters configured for the connector in your workspace. |
connectionParameters | Parameters provided by the user during connection setup. |
Return Value
The test method should return:
trueor truthy value when the test succeedsfalseor falsy value when the test fails- Or throw an error with a descriptive message for more detailed failure information
Best Practices
Endpoint Selection
Choose an endpoint for testing that:
- Is Lightweight: Uses minimal API resources and quota
- Requires Authentication: Actually tests credentials are valid
- Has Minimal Permissions: Works even with restricted access
- Is Stable: Unlikely to change or be deprecated
- Returns Quickly: Provides fast feedback
Common test endpoints include:
- User profile or account information
- API status endpoints
- Organization or workspace information
- Simple list endpoints with limits (e.g., first 1-2 items)
Updated about 13 hours ago
