fix(ci): merge supplemental database issue aliases

This commit is contained in:
t8y2
2026-08-23 16:41:46 +08:00
parent 0827478078
commit 4dd107484f
2 changed files with 21 additions and 1 deletions
+13 -1
View File
@@ -91,7 +91,19 @@ const supplementalDrivers = [
const manifestUrl = new URL("../../crates/dbx-core/assets/database-drivers.manifest.json", import.meta.url);
const manifest = JSON.parse(fs.readFileSync(manifestUrl, "utf8"));
const catalogEntries = [...manifest.drivers, ...supplementalDrivers];
const manifestDbTypes = new Set(manifest.drivers.map((driver) => driver.dbType));
const supplementalByDbType = new Map(supplementalDrivers.map((driver) => [driver.dbType, driver]));
const catalogEntries = [
...manifest.drivers.map((driver) => {
const supplemental = supplementalByDbType.get(driver.dbType);
if (!supplemental) return driver;
return {
...driver,
aliases: [...new Set([...(driver.aliases || []), ...(supplemental.aliases || [])])],
};
}),
...supplementalDrivers.filter((driver) => !manifestDbTypes.has(driver.dbType)),
];
const duplicateDbTypes = catalogEntries
.map((driver) => driver.dbType)
.filter((dbType, index, values) => values.indexOf(dbType) !== index);
@@ -50,6 +50,14 @@ test("Kingbase aliases retain historical and current company names", () => {
assert.equal(kingbase.aliases.includes("中电科金仓"), false);
});
test("supplemental aliases merge into manifest entries without duplicating labels", () => {
const mqttEntries = databaseIssueDrivers.filter((driver) => driver.dbType === "mqtt");
assert.equal(mqttEntries.length, 1);
assert.equal(mqttEntries[0].aliases.includes("emqx"), true);
assert.equal(mqttEntries[0].aliases.includes("hivemq"), true);
assert.equal(mqttEntries[0].aliases.includes("mosquitto"), true);
});
test("labels native and compatibility database products with their families", () => {
const cases = [
["Turso", ["db/turso"]],