openai_long_context_billing_migration_test.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. package migrations
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/require"
  5. )
  6. func TestMigration175DefaultsOrdinaryOpenAIAndInheritsForSparkShadows(t *testing.T) {
  7. content, err := FS.ReadFile("175_default_openai_long_context_billing.sql")
  8. require.NoError(t, err)
  9. sql := string(content)
  10. require.Contains(t, sql, "parent_account_id IS NULL")
  11. require.Contains(t, sql, "quota_dimension = 'spark'")
  12. require.Contains(t, sql, "parent.extra")
  13. require.Contains(t, sql, "jsonb_typeof")
  14. require.Contains(t, sql, "openai_long_context_billing_enabled")
  15. }
  16. func TestMigration175GuardsMixedVersionAccountWrites(t *testing.T) {
  17. content, err := FS.ReadFile("175_default_openai_long_context_billing.sql")
  18. require.NoError(t, err)
  19. sql := string(content)
  20. require.Contains(t, sql, "RETURNS TRIGGER")
  21. require.Contains(t, sql, "BEFORE INSERT OR UPDATE")
  22. require.Contains(t, sql, "CREATE TRIGGER")
  23. require.Contains(t, sql, "must be a boolean")
  24. require.Contains(t, sql, "INSERT INTO scheduler_outbox")
  25. require.Contains(t, sql, "'account_changed'")
  26. require.Contains(t, sql, "jsonb_typeof(extra->'openai_long_context_billing_enabled') IS DISTINCT FROM 'boolean'")
  27. require.Contains(t, sql, "WITH shadow_values AS")
  28. require.Contains(t, sql, "TG_OP = 'UPDATE'")
  29. require.Contains(t, sql, "OLD.extra->'openai_long_context_billing_enabled'")
  30. }