> ## Documentation Index
> Fetch the complete documentation index at: https://docs.membrane.agency/llms.txt
> Use this file to discover all available pages before exploring further.

# 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

**Supported implementation types**

* [Javascript](/docs/references/functions/function-types/javascript)
* [REST API Mapping](/docs/references/functions/function-types/rest-api-mapping)

### JavaScript Implementation

The test method is typically implemented in JavaScript:

```yaml theme={null}
# Connector definition: Verify credentials by fetching user profile and checking account status
test:
  type: javascript
  code: |
    export default async function test({ apiClient }) {
      try {
        const responseData = await apiClient.get('/user/profile')

        if (responseData.accountStatus === 'active') {
          return true
        }

        return false
      } catch (error) {
        console.error('Authentication test failed:', error)
        return false
      }
    }
```

### REST API Mapping Implementation

The test method can also be implemented by defining an API request and response mapping:

```yaml theme={null}
# Connector definition: Verify credentials by checking if current user endpoint returns an id
test:
  type: rest-api-mapping
  mapping:
    path: /current-user
    method: get
    responseMapping:
      $eval:
        $var: $.response.id
      isNotEmpty: true
```

## Input Context

The test method receives a context object with these properties:

| Property              | Description                                                |
| --------------------- | ---------------------------------------------------------- |
| `connectorParameters` | Parameters configured for the connector in your workspace. |
| `connectionInput`     | Parameters provided by the user during connection setup.   |

## Return Value

The test method should return:

* `true` or truthy value when the test succeeds
* `false` or 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:

1. **Is Lightweight**: Uses minimal API resources and quota
2. **Requires Authentication**: Actually tests credentials are valid
3. **Has Minimal Permissions**: Works even with restricted access
4. **Is Stable**: Unlikely to change or be deprecated
5. **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)
