release: v0.2.1 生产加固 — WAL CRC/约束激活/Hybrid提交顺序/RESTRICT外键/浏览器兼容表/debug模式/onError回调
This commit is contained in:
@@ -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);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user