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

# Developer testing

> Use pricing-page developer mode to force plan states for your own test user during development.

Use developer mode on the pricing page to force plan states for your own test account while you validate extension behavior. This is a developer-only testing tool. It keeps the results predictable, but it does not try to reproduce the full Stripe lifecycle exactly.

## Before you start

* Open your project's pricing page.
* Sign in with the same email address as the dashboard account that owns the project.
* Make sure the project has tiers and prices configured.
* If you want to test `trialing`, configure `trial_days` on the recurring tier first.

When you sign in with the same email address as the project owner, the pricing page enters **Developer Mode** and shows a status selector for each plan option.

<Tip>Developer testing only changes your own test account for that extension. Real end users still follow the normal checkout, switching, and trial rules.</Tip>

## Update a plan state

<Steps>
  <Step title="Open the pricing page">Open the pricing page for the project you want to test.</Step>

  <Step title="Sign in as the project owner email">
    If you are not already signed in, log in through the pricing page with the same email address that owns the project in the dashboard.
  </Step>

  <Step title="Choose a status for the plan you want to test">Pick the state you want to test for that plan, then click the check button to apply it.</Step>
  <Step title="Wait for the page to refresh">After a successful update, the pricing page refreshes and shows the saved state.</Step>
</Steps>

## Available statuses

| Price type                      | Available statuses                                                 | Notes                                                                      |
| ------------------------------- | ------------------------------------------------------------------ | -------------------------------------------------------------------------- |
| Recurring (`monthly`, `yearly`) | `active`, `trialing`, `past_due`, `unpaid`, `canceled`, `Inactive` | `trialing` is available only when the tier has a trial duration configured |
| One-time (`once`)               | `active`, `Inactive`                                               | Lifetime prices do not expose recurring-only states                        |

`Inactive` clears that plan from your test account.

## What happens when you apply a status

* Setting a recurring plan to `active`, `trialing`, `past_due`, or `unpaid` replaces other active recurring testing states on your test account.
* Setting a recurring plan to `canceled` lets you test canceled-state messaging and access behavior.
* Setting a plan to `Inactive` removes that plan from your test account.
* Activating a lifetime plan may remove conflicting recurring access automatically.
* Activating a recurring plan may remove conflicting lifetime access automatically.

## Testing trial flows

Developer testing is intentionally more flexible than the real end-user trial flow.

* Real end users get one trial per project. See [Subscription trials](/guides/platform/subscription-trials/).
* Your test account can be forced back into `trialing` for repeated testing.
* If you want to return a recurring price to a clean state, set it to `Inactive`.

Use this when you want to verify extension messaging for trial onboarding, trial expiration copy, or trial-specific access checks without creating new Stripe test customers each time.

## Common uses

* Verify extension behavior for `past_due`, `unpaid`, or `canceled` users.
* Test [plan switching](/guides/platform/plan-switching/) with different starting states.
* Validate lifetime access rules before creating real purchases.
* Reproduce support issues on your own developer test user.

## Related guides

* [Authentication](/guides/platform/authentication/)
* [Plan switching](/guides/platform/plan-switching/)
* [Subscription trials](/guides/platform/subscription-trials/)
