Skip to content
Back to skills

Testdriver Secrets

ASecurity

Securely manage passwords and sensitive data in your tests

  • 243 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 6, 2026
ai-agentsjavascriptgojavabashgitapisecurity

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 22, 2026

npx -y skills add testdriverai/testdriverai --skill testdriver-secrets --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Testdriver Secrets?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Testdriver Secrets
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/testdriverai-testdriver-secrets/badge)](https://www.skillsdirectory.com/skills/testdriverai-testdriver-secrets)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: testdriver:secrets
description: Securely manage passwords and sensitive data in your tests
---
<!-- Generated from secrets.mdx. DO NOT EDIT. -->

Protect sensitive information such as passwords, API keys, and tokens in your TestDriver tests.

## Typing Secrets Securely

When you type sensitive information such as passwords, use the `secret: true` option. This stops TestDriver from a log or a store of the value:

```javascript
import { test } from 'vitest';
import { chrome } from 'testdriverai/presets';

test('login with secure password', async (context) => {
  const { testdriver } = await chrome(context, { 
    url: 'https://myapp.com/login' 
  });

  await testdriver.find('email input').click();
  await testdriver.type(process.env.TD_USERNAME);
  
  await testdriver.find('password input').click();
  // Password is masked in logs and recordings
  await testdriver.type(process.env.TD_PASSWORD, { secret: true });
  
  await testdriver.find('login button').click();
  await testdriver.assert('dashboard is visible');
});
```

<Note>
When you set `secret: true`, the typed text shows as `****` in all logs, recordings, and dashcam output.
</Note>

## Storing Secrets in GitHub

Store sensitive credentials as GitHub repository secrets. Then they are never in your code:

<Steps>
  <Step title="Navigate to Repository Settings">
    Go to your GitHub repository → **Settings** → **Secrets and variables** → **Actions**
  </Step>
  <Step title="Add Repository Secrets">
    Click **New repository secret** and add your secrets:
    - `TD_API_KEY` - Your TestDriver API key
    - `TD_USERNAME` - Test account username
    - `TD_PASSWORD` - Test account password
  </Step>
  <Step title="Use in GitHub Actions">
    Reference secrets in your workflow file:
    ```yaml .github/workflows/test.yml
    - name: Run TestDriver tests
      env:
        TD_API_KEY: ${{ secrets.TD_API_KEY }}
        TD_USERNAME: ${{ secrets.TD_USERNAME }}
        TD_PASSWORD: ${{ secrets.TD_PASSWORD }}
      run: vitest run
    ```
  </Step>
</Steps>

## Local Development

For local development, store secrets in a `.env` file:

```bash .env
TD_API_KEY=your_api_key_here
TD_USERNAME=testuser@example.com
TD_PASSWORD=your_secure_password
```

<Warning>
Never commit `.env` files to version control. Add `.env` to your `.gitignore` file.
</Warning>

## Complete Example

Here's a full login test with proper secrets handling:

```javascript tests/login.test.js
import { test, expect } from 'vitest';
import { chrome } from 'testdriverai/presets';

test('secure login flow', async (context) => {
  const { testdriver } = await chrome(context, { 
    url: process.env.TD_WEBSITE || 'https://staging.myapp.com'
  });

  // Enter username (not sensitive)
  await testdriver.find('email input').click();
  await testdriver.type(process.env.TD_USERNAME);
  
  // Enter password securely
  await testdriver.find('password input').click();
  await testdriver.type(process.env.TD_PASSWORD, { secret: true });
  
  // Submit login
  await testdriver.find('login button').click();
  
  // Verify successful login
  const loggedIn = await testdriver.assert('user is logged in');
  expect(loggedIn).toBeTruthy();
});
```

<Card title="Secrets Best Practices" icon="shield-check">
  - **Always use `secret: true`** when typing passwords, tokens, or sensitive data
  - **Use environment variables** to keep secrets out of code
  - **Store secrets in your CI provider** (GitHub Actions, GitLab CI, etc.)
  - **Never commit secrets** to version control
  - **Rotate secrets regularly** to maintain security
</Card>

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.