コンテンツへスキップ
supastack
ドキュメントを閲覧
WebNext.js

For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /ja/docs/web/testing.md (or send Accept: text/markdown).

テスト戦略

決定的・ブラウザ・データベース・プロバイダーの各チェックが何を確立するかを理解する。

このガイドについて質問
開くアプリ

インストールとセットアップ

手順の前に、始める前に と ターミナルの基本 をお読みください。これらの手順では、VS Code で完全な supastack モノリポジトリを開いたことが前提となっています。そのルート package.json はリポジトリのルートをマークします。 pnpm コマンドでは、ワークスペース パッケージはアプリまたは共有コード フォルダーです。この製品では、ワークスペースはチームのデータ コンテナであり、セキュリティ境界です。 corepack pnpm --filter ... コマンドがルートから実行されている間にモノリポジトリから 1 つのパッケージを選択します。同期されたモバイル フォルダーまたはデスクトップ フォルダーのみを開いた場合、そのフォルダーには Web バックエンド、Docker セットアップ、またはルート スクリプトが含まれていません。このモノリポジトリまたはアクセス可能なホスト サーバーからバックエンドを実行し、プラットフォーム フォルダー独自のスクリプトを使用します。環境変数は、ローカルの .env ファイルまたはホスティング ダッシュボードに保存される名前付き設定です。変更後に関連するアプリを再起動し、NEXT_PUBLIC_ および EXPO_PUBLIC_ 値にサーバー シークレットが含まれないようにします。

1. リポジトリルートの package.json を開いてチェックコマンドを確認します。

2. そのルート フォルダーから、自動単体テストの場合は corepack pnpm test を実行し、Web TypeScript チェックの場合は corepack pnpm --filter @supastack/web typecheck を実行します。

3. ブラウザーの動作については、Web アプリを起動し、corepack pnpm test:e2e を実行します。期待通り: 各コマンドは独自の結果を報告します。単体テストは、実際のデータベース、決済プロバイダー、電子メール サービス、電話が機能することを証明するものではありません。

デフォルトのテストスイートは決定的な fake/ローカルアダプターを使います。ブラウザテストはユーザー操作をカバーし、データベース受け入れと外部プロバイダースモークは別のゲートです。範囲を広げる前に、変更した振る舞いに関連するチェックを実行してください。

corepack pnpm test
corepack pnpm check
corepack pnpm build
corepack pnpm test:e2e
corepack pnpm test:e2e:production

コピーするコマンド

コメントに従って、コマンドがどのフォルダーで実行されるかを確認します。 2 つのターミナルにラベルが付いている場合は、2 つのターミナル ウィンドウを開き、2 番目のコマンドを使用している間、最初のコマンドを実行し続けます。

corepack pnpm test
corepack pnpm --filter @supastack/web typecheck
corepack pnpm test:e2e

実装ワークフロー

振る舞いの変更には、まず失敗する受け入れテストを書きます。成功したアクセスと拒否された匿名・ワークスペース間リクエストを対にします。フォームとタスクフローでは、ハッピーパスを超えて読み込み、エラー、復旧を検証します。

傍受されたブラウザ応答は、インターフェースがそのフィクスチャに応答することを証明します。認証永続化、支払い処理、プロバイダー配信、物理デバイスコールバックは証明しません。

検証とトラブルシューティング

データベース テストがスキップされたと判断した場合は、データベース カバレッジを報告する前に、分離されたテスト データベースを設定します。 Web タブがポート 3001 にある場合、それは別の apps/docs サーバーです。キットの Web アプリはポート 3000 で開始します。Playwright が Windows の最初の実行に失敗した場合は、ブラウザーのインストールを完了させて、失敗したコマンドを再実行します。これを回避するためにシステム全体のセキュリティをオフにしないでください。

データベースゲート付きテストがスキップされた場合、そのゲートが通過したと主張する前に分離されたテストデータベースを設定してください。ブラウザランナーが合格アサーションを出してもティアダウンでハングする場合、両方の事実を報告してください。ハングしたプロセスはクリーンな成功コマンドではありません。

Windows では、Defender が新しくインストールされた Playwright ブラウザーまたは依存関係をスキャンしている間に、ブラウザーの初回実行がタイムアウトになる場合があります。インストールが完了したら、corepack pnpm test:e2e または corepack pnpm test:e2e:production を使用して失敗したスイートを再実行し、再度失敗した場合はそのトレースと Defender Protection History を検査します。システム全体の保護を有効のままにしておきます。

ローカル ブラウザ スイートはポート 3100 を所有しており、そこですでにリッスンしているプロセスの再利用を拒否します。別のアプリが 3100 を所有している場合は、PLAYWRIGHT_PORT を corepack pnpm test:e2e より前の空きポートに設定します。これにより、テストが別のプロジェクトをサイレントにターゲットにすることを防ぎます。

よくある質問

14 件の質問

supastack とは何ですか?

supastack は AI SaaS 製品を構築するためのモジュラー基盤です。共通インフラをまとめて提供するので、製品固有の機能に集中できます。

Web とモバイルに対応していますか?

はい。supastack には Web とモバイル体験の出発点として Next.js アプリと Expo アプリが含まれています。

どの認証が含まれていますか?

Better Auth がメール/パスワード、OTP、ソーシャルログインをカバーします。個人ワークスペースはアカウントと一緒にプロビジョニングされ、初日からレコードが境界内に収まります。

AI はどうサポートされていますか?

supastack には設定可能なマルチプロバイダー AI、使用量追跡、予算、暗号化された自前キー(BYOK)サポートが含まれています。

サブスクリプションはどう管理されますか?

このキット上に構築された製品では、Stripe 課金・サブスクリプション・権限が有料アクセスの基盤になります。プロバイダーの秘密はサーバー側に留まります。

製品固有のコードはどこに置きますか?

製品固有の機能は別のコードベースに置き、製品側が supastack の基本モジュールを設定・統合します。

supastack の価格は?

キットは生涯アップデート付きの一回払いです:単一フレームワーク 249 ドル(期間限定のローンチ価格 — 通常価格 349 ドルから 100 ドル割引)、または全フレームワーク(Next.js・iOS・Android)499 ドル(期間限定のローンチ価格 — 通常価格 599 ドルから 100 ドル割引)、追加開発者シート 1 席 75 ドル。キットのサブスクリプションはありません。このサイトのチェックアウトはライセンスキーをメールで配信し、GitHub 招待でリポジトリアクセスを提供します。

ワークスペースはどうデータを囲いますか?

ユーザーレコードは workspaceId でスコープされます。認証、権限、AI 使用量、課金イベント、監査エントリは個人ワークスペースの境界内に留まります。

バックグラウンドジョブはどう機能しますか?

Trigger.dev が明示的なジョブランタイムです。JobRunner コントラクトは enqueue・status・cancel のみを約束し、ワークフロー意味論は Trigger.dev 固有で明示的です。

メールとアウトリーチの違いは?

トランザクションメールはタスク完了通知などの製品ワークフローをカバーします。コールドアウトリーチやキャンペーンは製品自身に属し、このキットのメールモジュールの外です。

モバイルの購入はどのように機能しますか?

モバイルでは RevenueCat によるネイティブ購入と復元に対応し、アクセス権をサーバーで検証します。公開前にストアアカウントを設定し、実機テストを完了してください。Web 課金は別に管理します。

AI プロバイダーのキーはどこにありますか?

BYOK 認証情報は暗号化され、サーバー側に留まります。キーはログでサニタイズされ、使用量と予算はワークスペースレベルで可視です。

チェックアウトで使える支払い方法は?

Stripe ホストのチェックアウトはカードを受け付け、Stripe アカウントでウォレットを有効にすれば Alipay と WeChat Pay も提供できます——中国の購入者に便利です。ウォレット認可は非同期で確定するため、決済完了と同時にライセンスページが更新されます。

返金を受けることはできますか?

リポジトリへのアクセス権を取得した後は、supastack は永久にあなたのものとなるため、返金はできません。ですがご安心ください。生涯アップデートを含む完全なソースコードを入手し、ご自身やクライアントのために無制限にプロダクトを構築・公開できます。コードの転売や、リポジトリをスターターキットやテンプレートとして再配布することのみ禁止されています。

JA
テーマ