> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-actions-triggers-prototype.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# アクションをテストする

> Auth0 Actionsのテスト・デバッグ方法をご紹介します。

Auth0 Actionsのテスト・デバッグ方法は、実装段階によって異なります。

アクションを実装するときは、<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-0" href="/docs/ja-jp/glossary?term=auth0-dashboard" tip="Auth0 Dashboard: サービスを構成するためのAuth0の主製品。" cta="用語集の表示">Auth0 Dashboard</Tooltip>から個別にテストすることをお勧めします。準備が完了したら、エンドツーエンドのフローが想定どおりに動作するかをAuth0 Dashboardのテナントログで検証しましょう。

## 個別のアクションをテストする

個々のアクションは、Actions Code Editorでテストできます。このエディターのテスト機能は、アクションに関連付けられたフローに従って、サンプルペイロードを使用してアクションへの呼び出しをシミュレーションします。個々のアクションをテストするには：

1. [［Auth0 Dashboard］>［Actions（アクション）］](https://manage.auth0.com/#/actions)に移動し、編集するフローとアクションを選択します。
2. アクションコードエディターを見つけて、サイドバーから **［Test（テスト）］** （再生アイコン）を選択します。異なるペイロードでの結果を分析するために、［Test（テスト）］サイドバーのペイロードを編集します。
3. **\[Run（実行）］** を選択します。

テスト結果には、アクションが実行したステップや、コンソールの出力、生じたエラー、アクションの実行に関する統計が表示されます。

<Frame>
  <img src="https://mintcdn.com/docs-dev-actions-triggers-prototype/qEDznvQyaSJAkqqp/docs/images/ja-jp/cdy7uua7fh8z/7I4CRM8SmRFiibjuk55L86/c9c54d9970e470db48762af6b05c49b0/2025-01-10_13-32-11.png?fit=max&auto=format&n=qEDznvQyaSJAkqqp&q=85&s=d64e69e4289812cb39b415e5a1f44be4" alt="Action Code Editorのテストモジュールのスクリーンショット" width="894" height="473" data-path="docs/images/ja-jp/cdy7uua7fh8z/7I4CRM8SmRFiibjuk55L86/c9c54d9970e470db48762af6b05c49b0/2025-01-10_13-32-11.png" />
</Frame>

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  アクションをテストするには、Management APIの[**Test an Action（アクションのテスト）** エンドポイント](https://auth0.com/docs/api/management/v2#!/Actions/post_test_action)を使って、アクション関連のフローに対応したペイロードを提供する方法もあります。サンプルペイロードを取得するには、Actionsコードエディターのテスト機能を使用してアクションをテストします。
</Callout>

## デプロイしたアクションをデバッグする

アクションのテストが終わったら、デプロイしてその実行を観察しましょう。アクションのデプロイとフローへの追加が終わっていれば（アクションをフローにアタッチする方法については、「[初めてのアクションを作成する](/docs/ja-jp/customize/actions/write-your-first-action)」の「アクションをフローにアタッチする」セクションを参照）、ライブアクションを数ステップでデバッグできます。

### エンドツーエンドのログインフローを検証する

`post-login`（ログイン後）アクションの場合は、テナントのログインを試行することでエンドツーエンドログインフローを検証できます。

1. [［Auth0 Dashboard］>［Authentication（認証）］>［Authentication Profile（認証プロファイル）］](https://manage.auth0.com/#/authentication-profiles)に移動し、 **［Try（試す）］** を選択します。ウィンドウが開き、サンプルログインが表示されます。
2. ログインフローを続行します。ログインフローは、設定されているアクションを実行します。

プロセスが完了するとリダイレクトが行われ、リダイレクト先のページにアプリケーションが受け取るユーザープロファイル属性、またはエラーメッセージとその内容が表示されます。

### テナントログを分析する

フローに関連付けられたアクションがバインドされているトリガーが実行されるたびに、[テナントログ](/docs/ja-jp/deploy-monitor/logs/view-log-events)にアクション実行の詳細が含まれます。

テナントログのリストでは、アクションに関連するログを確認できます。以下の例では、`Success Login`（ログイン成功）のログタイプが、このテナントの`post-login`（ログイン後）トリガーのアクションに関連付けられています。

<Frame>
  <img src="https://mintcdn.com/docs-dev-actions-triggers-prototype/Sm-rZzBGG9mhReiN/docs/images/ja-jp/cdy7uua7fh8z/4hIo2YJ8fr2tfMEWhaLyn4/c5427db5eb3a3cc4cd2c96a4c4c012c0/2025-01-31_14-24-28.png?fit=max&auto=format&n=Sm-rZzBGG9mhReiN&q=85&s=b75c5e7a439337aeabda88e88a9c3c5b" alt="アクション実行に関連したログを示す、Auth0 Dashboardのテナントログリストのスクリーンショット" width="1529" height="758" data-path="docs/images/ja-jp/cdy7uua7fh8z/4hIo2YJ8fr2tfMEWhaLyn4/c5427db5eb3a3cc4cd2c96a4c4c012c0/2025-01-31_14-24-28.png" />
</Frame>

アクションに関連付けられるログタイプの例としては、次のようなものが挙げられます：

| 名前          | トリガー                                                                                  |
| ----------- | ------------------------------------------------------------------------------------- |
| 正常なログイン     | [post-login](/docs/ja-jp/customize/actions/triggers/post-login)                       |
| 失敗したログイン    | [post-login](/docs/ja-jp/customize/actions/triggers/post-login)                       |
| 正常な交換       | [post-login](/docs/ja-jp/customize/actions/triggers/post-login)                       |
| 失敗した交換      | [post-login](/docs/ja-jp/customize/actions/triggers/post-login)                       |
| 正常なパスワード変更  | [post-change-password](/docs/ja-jp/customize/actions/triggers/post-change-password)   |
| 失敗したパスワード変更 | [post-change-password](/docs/ja-jp/customize/actions/triggers/post-change-password)   |
| 正常なサインアップ   | [pre-user-registration](/docs/ja-jp/customize/actions/triggers/pre-user-registration) |
| 失敗したサインアップ  | [pre-user-registration](/docs/ja-jp/customize/actions/triggers/pre-user-registration) |
| 正常な交換       | [credentials-exchange](/docs/ja-jp/customize/actions/triggers/credentials-exchange)   |
| 失敗した交換      | [credentials-exchange](/docs/ja-jp/customize/actions/triggers/credentials-exchange)   |

アクション実行に関する詳細を表示するには、アクション実行に関連しているログを選択してから、 **［Action Details（アクションの詳細）］** ビューを選択します。［Action Details（アクションの詳細）］には、実行の統計、コンソールの出力、エラーが表示されます。

<Frame>
  <img src="https://mintcdn.com/docs-dev-actions-triggers-prototype/w3k2AH_K7Myvi2qD/docs/images/ja-jp/cdy7uua7fh8z/1WrsQvjZxI2WRMrtltandy/d849efb5ff3e550ceaf4f96d88a81130/2025-01-29_11-52-01.png?fit=max&auto=format&n=w3k2AH_K7Myvi2qD&q=85&s=d5c262a37753bd9792a3270d333b90c9" alt="アクションのテストに関連した個別ログのスクリーンショット。" width="1042" height="794" data-path="docs/images/ja-jp/cdy7uua7fh8z/1WrsQvjZxI2WRMrtltandy/d849efb5ff3e550ceaf4f96d88a81130/2025-01-29_11-52-01.png" />
</Frame>

## アクションのユニットテスト

Auth0 Actionsのユニットテストを行うには、アクション関数に渡されるイベントとAPIをモックします。アクションは、バージョン制御またはローカルディレクトリに配置でき、Jestなどのツールを使って自動的にテストできます。次の例では、[Login/Post Login](/docs/ja-jp/customize/actions/explore-triggers/signup-and-login-triggers/login-trigger)トリガーと[Jest](https://jestjs.io/)を使用してモックとテストを行います。

**アクションコード：**

```javascript lines theme={null}
// action.js

exports.onExecutePostLogin = async (event, api) => {
  const namespace = "https://my-app.example.com";
  if (event.authorization) {
    api.idToken.setCustomClaim(`${namespace}/favorite_color`, "pink");
  }
};
```

**テストファイルコード：**

```javascript lines theme={null}
// action.spec.js

const { onExecutePostLogin } = require("./action.js");
test("sets favorite_color ID token claim to pink", async () => {
  const namespace = "https://my-app.example.com";
  const mockFunction = jest.fn();
  const mockApi = { idToken: { setCustomClaim: mockFunction } };
  const mockEvent = {authorization: {}};

  await onExecutePostLogin(mockEvent, mockApi);
  expect(mockFunction).toBeCalledWith(
    `${namespace}/favorite_color`,
    "pink"
  );
});
```

## ベストプラクティス

Auth0でアクションを構築する場合は、[環境ごとに専用のAuth0テナントを作成することをお勧めします](/docs/ja-jp/get-started/auth0-overview/create-tenants/set-up-multiple-environments)。そうすれば、運用環境のユーザーベースをその他の環境から隔離できるだけでなく、環境ごとに別々の管理者を設定できます（たとえば、エンジニアが運用設定へのアクセス権を持たない場合など）。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  CLIやCI/CDのパイプラインを介してアクションを完全に管理、テストして、デプロイしたい場合は、[Deploy CLI Tool](/docs/ja-jp/deploy-monitor/deploy-cli-tool)を使用します。
</Callout>
