feat: 支持证书托管和节点自动安装
This commit is contained in:
@@ -22,7 +22,12 @@ function snapshot(db: Database.Database) {
|
||||
"SELECT name FROM sqlite_master WHERE type='table' ORDER BY name",
|
||||
)
|
||||
.all() as { name: string }[]
|
||||
).map(({ name }) => [name, db.prepare(`SELECT * FROM "${name}"`).all()]),
|
||||
)
|
||||
.filter(
|
||||
({ name }) =>
|
||||
!["managed_certificates", "node_installations"].includes(name),
|
||||
)
|
||||
.map(({ name }) => [name, db.prepare(`SELECT * FROM "${name}"`).all()]),
|
||||
);
|
||||
}
|
||||
function seed(db: Database.Database) {
|
||||
@@ -40,7 +45,7 @@ test("fresh database exactly matches the inspected remote v4 column definitions"
|
||||
const fresh = new Database(":memory:");
|
||||
const remote = remoteDb();
|
||||
migrateDatabase(fresh);
|
||||
assert.equal(fresh.pragma("user_version", { simple: true }), 4);
|
||||
assert.equal(fresh.pragma("user_version", { simple: true }), 5);
|
||||
for (const { name } of remote
|
||||
.prepare("SELECT name FROM sqlite_master WHERE type='table'")
|
||||
.all() as { name: string }[]) {
|
||||
@@ -93,7 +98,7 @@ for (const existing of [
|
||||
if (!existing.includes(field)) delete row[field];
|
||||
}
|
||||
assert.deepEqual(after, before);
|
||||
assert.equal(db.pragma("user_version", { simple: true }), 4);
|
||||
assert.equal(db.pragma("user_version", { simple: true }), 5);
|
||||
db.close();
|
||||
});
|
||||
}
|
||||
@@ -123,8 +128,8 @@ test("failed migrations roll back all statements and future schemas are not down
|
||||
db.prepare("SELECT name FROM sqlite_master WHERE type='table'").all(),
|
||||
[{ name: "hy2_users" }],
|
||||
);
|
||||
db.pragma("user_version = 5");
|
||||
db.pragma("user_version = 6");
|
||||
assert.throws(() => migrateDatabase(db), /版本/);
|
||||
assert.equal(db.pragma("user_version", { simple: true }), 5);
|
||||
assert.equal(db.pragma("user_version", { simple: true }), 6);
|
||||
db.close();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user