20260927215912
This commit is contained in:
1 parent
27e49e2e45
commit
f22e67fc85
294 files changed
+29247
-3576
No files matched your search
@@ -576,9 +576,7 @@ describe('模块管理:保存后的未保存判定', () => {
|
||||
})
|
||||
|
||||
describe('模块管理:卡头信息与刷新', () => {
|
||||
const LOCAL_DATETIME = /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/
|
||||
|
||||
it('保存主表变更时写入 b_updated_at,且时间戳不进草稿、不会让表单重新变脏', async () => {
|
||||
it('保存主表变更时前端不提交审计列,草稿也不会因此变脏', async () => {
|
||||
const wrapper = await mountManagement()
|
||||
await flushPromises()
|
||||
wrapper.vm.moduleSelectedId = 'demo'
|
||||
@@ -590,17 +588,14 @@ describe('模块管理:卡头信息与刷新', () => {
|
||||
await settleConfigReload(wrapper)
|
||||
|
||||
const moduleReq = savedRequests.find((request) => request.table === 's_module')
|
||||
expect(moduleReq.updates?.[0]).toMatchObject({
|
||||
b_id: 'demo',
|
||||
b_name: '改名后',
|
||||
b_updated_at: expect.stringMatching(LOCAL_DATETIME),
|
||||
})
|
||||
|
||||
// 时间戳若被写进草稿,重载后的基线与草稿就会不一致,这里会判定为仍有未保存改动
|
||||
expect(moduleReq.updates?.[0]).toMatchObject({ b_id: 'demo', b_name: '改名后' })
|
||||
// 审计列(b_updated_at 等)由后端按表列存在性统一维护(核心表结构设计 §1.6)
|
||||
expect(moduleReq.updates?.[0]).not.toHaveProperty('b_updated_at')
|
||||
expect(moduleReq.updates?.[0]).not.toHaveProperty('b_updated_by')
|
||||
expect(wrapper.vm.hasUnsavedChanges()).toBe(false)
|
||||
})
|
||||
|
||||
it('只改子表(多语言)时也刷新模块的最后保存时间', async () => {
|
||||
it('只改子表(多语言)时也触碰主表行,让后端刷新「最后保存时间」', async () => {
|
||||
const wrapper = await mountManagement()
|
||||
await flushPromises()
|
||||
wrapper.vm.moduleSelectedId = 'demo'
|
||||
@@ -612,15 +607,13 @@ describe('模块管理:卡头信息与刷新', () => {
|
||||
await wrapper.vm.handleSave()
|
||||
await settleConfigReload(wrapper)
|
||||
|
||||
// 主表行本身没有变化,仍要补一条只写时间戳的 update,否则卡头时间会停在改主表的时刻
|
||||
// 主表行本身没有变化:补一条只带主键的 update 触碰它,时间戳由后端补
|
||||
const moduleReq = savedRequests.find((request) => request.table === 's_module')
|
||||
expect(moduleReq.updates).toEqual([
|
||||
{ b_id: 'demo', b_updated_at: expect.stringMatching(LOCAL_DATETIME) },
|
||||
])
|
||||
expect(moduleReq.updates).toEqual([{ b_id: 'demo' }])
|
||||
expect(wrapper.vm.hasUnsavedChanges()).toBe(false)
|
||||
})
|
||||
|
||||
it('库里还没有 b_updated_at 列时(迁移未执行)不补时间戳更新', async () => {
|
||||
it('库里还没有 b_updated_at 列时(迁移未执行)不触碰主表行', async () => {
|
||||
delete db.s_module.find((item) => item.b_id === 'demo').b_updated_at
|
||||
|
||||
const wrapper = await mountManagement()
|
||||
@@ -634,7 +627,7 @@ describe('模块管理:卡头信息与刷新', () => {
|
||||
await wrapper.vm.handleSave()
|
||||
await settleConfigReload(wrapper)
|
||||
|
||||
// 只写不存在列的 update 会被后端以「没有可修改的字段」拒绝,整次保存回滚
|
||||
// 只带主键的 update 在后端补不上任何可写列(审计列不存在),会被「没有可修改的字段」拒绝
|
||||
expect(savedRequests.some((request) => request.table === 's_module')).toBe(false)
|
||||
})
|
||||
|
||||
|
||||
Reference in new issue
Block a user