add e2e for opencode
This commit is contained in:
parent
2a678f3a75
commit
ee7f7365db
@ -5,7 +5,8 @@ E2Eテストを追加・変更した場合は、このドキュメントも更
|
||||
## 前提条件
|
||||
- `gh` CLI が利用可能で、対象GitHubアカウントでログイン済みであること。
|
||||
- `takt-testing` リポジトリが対象アカウントに存在すること(E2Eがクローンして使用)。
|
||||
- 必要に応じて `TAKT_E2E_PROVIDER` を設定すること(例: `claude` / `codex`)。
|
||||
- 必要に応じて `TAKT_E2E_PROVIDER` を設定すること(例: `claude` / `codex` / `opencode`)。
|
||||
- `TAKT_E2E_PROVIDER=opencode` の場合は `TAKT_E2E_MODEL` が必須(例: `opencode/big-pickle`)。
|
||||
- 実行時間が長いテストがあるため、タイムアウトに注意すること。
|
||||
- E2Eは `e2e/helpers/test-repo.ts` が `gh` でリポジトリをクローンし、テンポラリディレクトリで実行する。
|
||||
- 対話UIを避けるため、E2E環境では `TAKT_NO_TTY=1` を設定してTTYを無効化する。
|
||||
@ -26,9 +27,11 @@ E2Eテストを追加・変更した場合は、このドキュメントも更
|
||||
- `npm run test:e2e:provider`: `claude` と `codex` の両方で実行。
|
||||
- `npm run test:e2e:provider:claude`: `TAKT_E2E_PROVIDER=claude` で実行。
|
||||
- `npm run test:e2e:provider:codex`: `TAKT_E2E_PROVIDER=codex` で実行。
|
||||
- `npm run test:e2e:provider:opencode`: `TAKT_E2E_PROVIDER=opencode` で実行(`TAKT_E2E_MODEL` 必須)。
|
||||
- `npm run test:e2e:all`: `mock` + `provider` を通しで実行。
|
||||
- `npm run test:e2e:claude`: `test:e2e:provider:claude` の別名。
|
||||
- `npm run test:e2e:codex`: `test:e2e:provider:codex` の別名。
|
||||
- `npm run test:e2e:opencode`: `test:e2e:provider:opencode` の別名。
|
||||
- `npx vitest run e2e/specs/add-and-run.e2e.ts`: 単体実行の例。
|
||||
|
||||
## シナリオ一覧
|
||||
|
||||
@ -95,8 +95,17 @@ export function createIsolatedEnv(): IsolatedEnv {
|
||||
// Create TAKT config directory and config.yaml
|
||||
mkdirSync(taktDir, { recursive: true });
|
||||
const baseConfig = readE2EFixtureConfig();
|
||||
const config = process.env.TAKT_E2E_PROVIDER
|
||||
? { ...baseConfig, provider: process.env.TAKT_E2E_PROVIDER }
|
||||
const provider = process.env.TAKT_E2E_PROVIDER;
|
||||
const model = process.env.TAKT_E2E_MODEL;
|
||||
if (provider === 'opencode' && !model) {
|
||||
throw new Error('TAKT_E2E_PROVIDER=opencode requires TAKT_E2E_MODEL (e.g. opencode/big-pickle)');
|
||||
}
|
||||
const config = provider
|
||||
? {
|
||||
...baseConfig,
|
||||
provider,
|
||||
...(provider === 'opencode' && model ? { model } : {}),
|
||||
}
|
||||
: baseConfig;
|
||||
writeConfigFile(taktDir, config);
|
||||
|
||||
|
||||
@ -20,8 +20,10 @@
|
||||
"test:e2e:provider": "npm run test:e2e:provider:claude && npm run test:e2e:provider:codex",
|
||||
"test:e2e:provider:claude": "TAKT_E2E_PROVIDER=claude vitest run --config vitest.config.e2e.provider.ts --reporter=verbose",
|
||||
"test:e2e:provider:codex": "TAKT_E2E_PROVIDER=codex vitest run --config vitest.config.e2e.provider.ts --reporter=verbose",
|
||||
"test:e2e:provider:opencode": "TAKT_E2E_PROVIDER=opencode vitest run --config vitest.config.e2e.provider.ts --reporter=verbose",
|
||||
"test:e2e:claude": "npm run test:e2e:provider:claude",
|
||||
"test:e2e:codex": "npm run test:e2e:provider:codex",
|
||||
"test:e2e:opencode": "npm run test:e2e:provider:opencode",
|
||||
"lint": "eslint src/",
|
||||
"prepublishOnly": "npm run lint && npm run build && npm run test"
|
||||
},
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user