release: v0.2.1 生产加固 — WAL CRC/约束激活/Hybrid提交顺序/RESTRICT外键/浏览器兼容表/debug模式/onError回调
CI / test (20.x) (push) Successful in 9m58s
CI / test (18.x) (push) Successful in 10m0s
CI / test (22.x) (push) Successful in 10m0s
CI / test (24.x) (push) Successful in 9m56s

This commit is contained in:
thzxx
2026-07-27 20:47:30 +08:00
parent 620cd11521
commit e6efa39d48
18 changed files with 357 additions and 27 deletions
+15 -5
View File
@@ -198,16 +198,26 @@ describe('v0.1.13 外键级联 — ON DELETE RESTRICT', () => {
afterEach(async () => { await db.close(); });
it('RESTRICT 模式下删除用户 → 不级联(保留孤儿订单)', async () => {
await db.table('users').delete().where({ id: '1' }).execute();
// 订单仍然存在
it('RESTRICT 模式下删除用户 → 抛出外键冲突错误', async () => {
// RESTRICT 应禁止删除有子行的父记录
await expect(
db.table('users').delete().where({ id: '1' }).execute()
).rejects.toThrow('has dependent rows');
// 订单应保持不变
const orders = await db.table('orders').select().execute();
expect(orders).toHaveLength(1);
expect(orders[0].user_id).toBe('1');
// 用户也未被删除
expect(await db.table('users').count()).toBe(1);
});
it('无 references 的列不受影响', async () => {
await db.table('users').delete().where({ id: '1' }).execute();
it('RESTRICT 约束阻止删除有订单的用户', async () => {
// 试图删除有订单的用户应被 RESTRICT 阻止
await expect(
db.table('users').delete().where({ id: '1' }).execute()
).rejects.toThrow('has dependent rows');
// 用户和订单均应保持不变
expect(await db.table('users').count()).toBe(1);
expect(await db.table('orders').count()).toBe(1);
});
});