Files
sub2api/backend/migrations/opencode_go_platform_migration_test.go
刘佳林 242907854d feat(opencode): add OpenCode platform with Zen and GO account types
Keep the internal platform ID opencode_go. Product surface is OpenCode
with account_mode zen|go, model-aware routing across Chat Completions,
Responses, and Anthropic Messages, and X-OpenCode-Session derived from
prompt_cache_key / metadata.user_id so prompt cache can hit.

Unmatched models fall back to /v1/chat/completions. Related to #6742.
2026-09-11 10:05:24 +08:00

30 lines
1.3 KiB
Go

package migrations
import (
"strings"
"testing"
"github.com/stretchr/testify/require"
)
func TestOpenCodeGoPlatformMigration(t *testing.T) {
content, err := FS.ReadFile("238_opencode_go_platform.sql")
require.NoError(t, err)
sql := strings.Join(strings.Fields(string(content)), " ")
require.Contains(t, sql, "user_platform_quotas_platform_check")
require.Contains(t, sql, "composite_model_routes_target_platform_check")
require.Contains(t, sql, "channel_monitors_provider_check")
require.Contains(t, sql, "channel_monitor_request_templates_provider_check")
require.Contains(t, sql, "'opencode_go'")
require.Contains(t, sql, "'minimax'")
require.Contains(t, sql, "position('opencode_go' IN monitor_constraint_def) = 0")
require.Contains(t, sql, "position('opencode_go' IN template_constraint_def) = 0")
require.Contains(t, sql,
"CHECK (platform IN ('anthropic', 'openai', 'gemini', 'antigravity', 'grok', 'kimi', 'zhipu', 'deepseek', 'minimax', 'opencode_go'))")
require.Contains(t, sql,
"CHECK (target_platform IN ('anthropic', 'openai', 'gemini', 'antigravity', 'grok', 'kimi', 'zhipu', 'deepseek', 'minimax', 'opencode_go'))")
require.Contains(t, sql,
"CHECK (provider IN ('openai', 'anthropic', 'gemini', 'grok', 'antigravity', 'kimi', 'zhipu', 'deepseek', 'minimax', 'opencode_go'))")
}