124 lines
4.2 KiB
Go
124 lines
4.2 KiB
Go
package repository
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestIsMigrationChecksumCompatible(t *testing.T) {
|
|
t.Run("054历史checksum可兼容", func(t *testing.T) {
|
|
ok := isMigrationChecksumCompatible(
|
|
"054_drop_legacy_cache_columns.sql",
|
|
"182c193f3359946cf094090cd9e57d5c3fd9abaffbc1e8fc378646b8a6fa12b4",
|
|
"82de761156e03876653e7a6a4eee883cd927847036f779b0b9f34c42a8af7a7d",
|
|
)
|
|
require.True(t, ok)
|
|
})
|
|
|
|
t.Run("054在未知文件checksum下不兼容", func(t *testing.T) {
|
|
ok := isMigrationChecksumCompatible(
|
|
"054_drop_legacy_cache_columns.sql",
|
|
"182c193f3359946cf094090cd9e57d5c3fd9abaffbc1e8fc378646b8a6fa12b4",
|
|
"0000000000000000000000000000000000000000000000000000000000000000",
|
|
)
|
|
require.False(t, ok)
|
|
})
|
|
|
|
t.Run("061历史checksum可兼容", func(t *testing.T) {
|
|
ok := isMigrationChecksumCompatible(
|
|
"061_add_usage_log_request_type.sql",
|
|
"08a248652cbab7cfde147fc6ef8cda464f2477674e20b718312faa252e0481c0",
|
|
"66207e7aa5dd0429c2e2c0fabdaf79783ff157fa0af2e81adff2ee03790ec65c",
|
|
)
|
|
require.True(t, ok)
|
|
})
|
|
|
|
t.Run("061第二个历史checksum可兼容", func(t *testing.T) {
|
|
ok := isMigrationChecksumCompatible(
|
|
"061_add_usage_log_request_type.sql",
|
|
"222b4a09c797c22e5922b6b172327c824f5463aaa8760e4f621bc5c22e2be0f3",
|
|
"66207e7aa5dd0429c2e2c0fabdaf79783ff157fa0af2e81adff2ee03790ec65c",
|
|
)
|
|
require.True(t, ok)
|
|
})
|
|
|
|
t.Run("非白名单迁移不兼容", func(t *testing.T) {
|
|
ok := isMigrationChecksumCompatible(
|
|
"001_init.sql",
|
|
"182c193f3359946cf094090cd9e57d5c3fd9abaffbc1e8fc378646b8a6fa12b4",
|
|
"82de761156e03876653e7a6a4eee883cd927847036f779b0b9f34c42a8af7a7d",
|
|
)
|
|
require.False(t, ok)
|
|
})
|
|
|
|
t.Run("109历史checksum可兼容", func(t *testing.T) {
|
|
ok := isMigrationChecksumCompatible(
|
|
"109_auth_identity_compat_backfill.sql",
|
|
"2b380305e73ff0c13aa8c811e45897f2b36ca4a438f7b3e8f98e19ecb6bae0b3",
|
|
"551e498aa5616d2d91096e9d72cf9fb36e418ee22eacc557f8811cadbc9e20ee",
|
|
)
|
|
require.True(t, ok)
|
|
})
|
|
|
|
t.Run("109回滚到历史文件后仍兼容已应用的新checksum", func(t *testing.T) {
|
|
ok := isMigrationChecksumCompatible(
|
|
"109_auth_identity_compat_backfill.sql",
|
|
"551e498aa5616d2d91096e9d72cf9fb36e418ee22eacc557f8811cadbc9e20ee",
|
|
"2b380305e73ff0c13aa8c811e45897f2b36ca4a438f7b3e8f98e19ecb6bae0b3",
|
|
)
|
|
require.True(t, ok)
|
|
})
|
|
|
|
t.Run("115历史checksum可兼容修复后的legacy external backfill", func(t *testing.T) {
|
|
ok := isMigrationChecksumCompatible(
|
|
"115_auth_identity_legacy_external_backfill.sql",
|
|
"4cf39e508be9fd1a5aa41610cbbebeb80385c9adda45bf78a706de9db4f1385f",
|
|
"022aadd97bb53e755f0cf7a3a957e0cb1a1353b0c39ec4de3234acd2871fd04f",
|
|
)
|
|
require.True(t, ok)
|
|
})
|
|
|
|
t.Run("116历史checksum可兼容修复后的legacy external safety reports", func(t *testing.T) {
|
|
ok := isMigrationChecksumCompatible(
|
|
"116_auth_identity_legacy_external_safety_reports.sql",
|
|
"f7757bd929ac67ffb08ce69fa4cf20fad39dbff9d5a5085fb2adabb7607e5877",
|
|
"07edb09fa8d04ffb172b0621e3c22f4d1757d20a24ae267b3b36b087ab72d488",
|
|
)
|
|
require.True(t, ok)
|
|
})
|
|
|
|
t.Run("119历史checksum可兼容占位文件", func(t *testing.T) {
|
|
ok := isMigrationChecksumCompatible(
|
|
"119_enforce_payment_orders_out_trade_no_unique.sql",
|
|
"ebd2c67cce0116393fb4f1b5d5116a67c6aceb73820dfb5133d1ff6f36d72d34",
|
|
"0bbe809ae48a9d811dabda1ba1c74955bd71c4a9cc610f9128816818dfa6c11e",
|
|
)
|
|
require.True(t, ok)
|
|
})
|
|
|
|
t.Run("120多个历史checksum都可兼容新的notx修复版本", func(t *testing.T) {
|
|
for _, dbChecksum := range []string{
|
|
"e77921f79d539bc24575cb9c16cbe566d2b23ce816190343d0a7568f6a3fcf61",
|
|
"707431450603e70a43ce9fbd61e0c12fa67da4875158ccefabacea069587ab22",
|
|
"04b082b5a239c525154fe9185d324ee2b05ff90da9297e10dba19f9be79aa59a",
|
|
} {
|
|
ok := isMigrationChecksumCompatible(
|
|
"120_enforce_payment_orders_out_trade_no_unique_notx.sql",
|
|
dbChecksum,
|
|
"34aadc0db59a4e390f92a12b73bd74642d9724f33124f73638ae00089ea5e074",
|
|
)
|
|
require.True(t, ok)
|
|
}
|
|
})
|
|
|
|
t.Run("119未知checksum不兼容", func(t *testing.T) {
|
|
ok := isMigrationChecksumCompatible(
|
|
"119_enforce_payment_orders_out_trade_no_unique.sql",
|
|
"ebd2c67cce0116393fb4f1b5d5116a67c6aceb73820dfb5133d1ff6f36d72d34",
|
|
"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
|
|
)
|
|
require.False(t, ok)
|
|
})
|
|
}
|