fix(GOV-011): 放宽 MySQL 服务端为完整 5.7 系列

This commit is contained in:
2026-08-17 17:28:48 +08:00
parent c8277ef25a
commit 54499f0678
2 changed files with 24 additions and 15 deletions
+20 -11
View File
@@ -132,19 +132,28 @@ test('拒绝错误字符集、排序规则和不完整的启用配置', () => {
);
});
test('只接受 MySQL 5.7 客户端、5.7.42 服务端和固定数据库字符规则', () => {
assert.doesNotThrow(() => assertMysql57Metadata(validMetadata));
test('接受完整 MySQL 5.7.x 服务端系列', () => {
for (const serverVersion of ['5.7.0', '5.7.41', '5.7.42-log']) {
assert.doesNotThrow(() =>
assertMysql57Metadata({ ...validMetadata, serverVersion }),
);
}
});
test('拒绝非 MySQL 5.7.x 版本并保持固定数据库字符规则', () => {
for (const serverVersion of ['5.6.51', '8.0.40', '5.7', '5.7.x', '']) {
assert.throws(
() => assertMysql57Metadata({ ...validMetadata, serverVersion }),
/MySQL 服务端必须为 5\.7\.x/,
);
}
assert.throws(
() => assertMysql57Metadata({ ...validMetadata, serverVersion: '8.0.39' }),
/服务端必须为 5\.7\.42/,
() => assertMysql57Metadata({ ...validMetadata, mysqlClientVersion: '8.0.40' }),
/mysql 客户端必须为 5\.7\.x/,
);
assert.throws(
() => assertMysql57Metadata({ ...validMetadata, serverVersion: '5.7.41' }),
/服务端必须为 5\.7\.42/,
);
assert.throws(
() => assertMysql57Metadata({ ...validMetadata, mysqlClientVersion: '8.0.39' }),
/mysql 客户端必须为 5\.7/,
() => assertMysql57Metadata({ ...validMetadata, mysqldumpClientVersion: '8.0.40' }),
/mysqldump 客户端必须为 5\.7\.x/,
);
assert.throws(
() => assertMysql57Metadata({ ...validMetadata, databaseCollation: 'utf8mb4_bin' }),
@@ -501,7 +510,7 @@ test('校验拒绝篡改成错误 MySQL 版本或伪造对象范围的真实清
const manifest = JSON.parse(readFileSync(manifestPath, 'utf8'));
manifest.mysql_server_version = '8.0.39';
writeFileSync(manifestPath, `${JSON.stringify(manifest, null, 2)}\n`);
assert.throws(() => verifyBaselineDirectory(target, 'v0.0.5'), /服务端必须为 5\.7\.42/);
assert.throws(() => verifyBaselineDirectory(target, 'v0.0.5'), /服务端必须为 5\.7\.x/);
manifest.mysql_server_version = '5.7.42-log';
manifest.objects.events = false;