fix(测试数据生成器): 修复规则覆盖保存误创建重复规则
覆盖同名规则时 handleSave(true) 未传入已有规则 id,save() 走新建分支 导致旧规则保留且产生同名重复项,getByName 仍返回旧数据。
This commit is contained in:
@@ -48,6 +48,27 @@ describe('ruleStorage', () => {
|
||||
expect(updated).toBeNull();
|
||||
});
|
||||
|
||||
it('save 带 id 时应更新已有规则而非新建', () => {
|
||||
const first = ruleStorage.save({
|
||||
name: 'Test Rule',
|
||||
fields: [mockField],
|
||||
});
|
||||
expect(first).not.toBeNull();
|
||||
|
||||
const updatedField = { ...mockField, name: 'email' };
|
||||
const updated = ruleStorage.save({
|
||||
id: first!.id,
|
||||
name: 'Test Rule',
|
||||
description: 'Updated',
|
||||
fields: [updatedField],
|
||||
});
|
||||
|
||||
expect(updated).not.toBeNull();
|
||||
expect(ruleStorage.getCount()).toBe(1);
|
||||
expect(ruleStorage.getById(first!.id)?.fields[0].name).toBe('email');
|
||||
expect(ruleStorage.getById(first!.id)?.description).toBe('Updated');
|
||||
});
|
||||
|
||||
it('deleteRule 在 localStorage 写入失败时应返回 false', () => {
|
||||
const saved = ruleStorage.save({
|
||||
name: 'Test Rule',
|
||||
|
||||
Reference in New Issue
Block a user