37 lines
1.3 KiB
Go
37 lines
1.3 KiB
Go
package migrations
|
|||
|
|
|
||
|
|
import (
|
||
|
|
"testing"
|
||
|
|
|
||
|
|
"github.com/stretchr/testify/require"
|
||
|
|
)
|
||
|
|
|
||
|
|
func TestMigration175DefaultsOrdinaryOpenAIAndInheritsForSparkShadows(t *testing.T) {
|
||
|
|
content, err := FS.ReadFile("175_default_openai_long_context_billing.sql")
|
||
|
|
require.NoError(t, err)
|
||
|
|
|
||
|
|
sql := string(content)
|
||
|
|
require.Contains(t, sql, "parent_account_id IS NULL")
|
||
|
|
require.Contains(t, sql, "quota_dimension = 'spark'")
|
||
|
|
require.Contains(t, sql, "parent.extra")
|
||
|
|
require.Contains(t, sql, "jsonb_typeof")
|
||
|
|
require.Contains(t, sql, "openai_long_context_billing_enabled")
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestMigration175GuardsMixedVersionAccountWrites(t *testing.T) {
|
||
|
|
content, err := FS.ReadFile("175_default_openai_long_context_billing.sql")
|
||
|
|
require.NoError(t, err)
|
||
|
|
|
||
|
|
sql := string(content)
|
||
|
|
require.Contains(t, sql, "RETURNS TRIGGER")
|
||
|
|
require.Contains(t, sql, "BEFORE INSERT OR UPDATE")
|
||
|
|
require.Contains(t, sql, "CREATE TRIGGER")
|
||
|
|
require.Contains(t, sql, "must be a boolean")
|
||
|
|
require.Contains(t, sql, "INSERT INTO scheduler_outbox")
|
||
|
|
require.Contains(t, sql, "'account_changed'")
|
||
|
|
require.Contains(t, sql, "jsonb_typeof(extra->'openai_long_context_billing_enabled') IS DISTINCT FROM 'boolean'")
|
||
|
|
require.Contains(t, sql, "WITH shadow_values AS")
|
||
|
|
require.Contains(t, sql, "TG_OP = 'UPDATE'")
|
||
|
|
require.Contains(t, sql, "OLD.extra->'openai_long_context_billing_enabled'")
|
||
|
|
}
|