mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-08-15 19:24:23 +08:00
- 设置中心元数据项支持拖拽调整展示顺序 - 新增 sidebarTableMetadataFieldOrder 持久化并按顺序渲染 - 保持表注释旧配置迁移与元数据开关兼容 - 补充排序、持久化和侧栏渲染回归测试
50 lines
1.9 KiB
TypeScript
50 lines
1.9 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
|
|
|
import {
|
|
applySidebarTableMetadataFieldOrder,
|
|
resolveSidebarTableMetadataFieldOrder,
|
|
resolveSidebarTableMetadataFields,
|
|
sanitizeSidebarTableMetadataFields,
|
|
setSidebarTableMetadataFieldSelected,
|
|
} from './sidebarTableMetadata';
|
|
|
|
describe('sidebarTableMetadata', () => {
|
|
it('keeps the default sidebar table metadata to row counts when no value is provided', () => {
|
|
expect(resolveSidebarTableMetadataFields(undefined, false)).toEqual(['rows']);
|
|
});
|
|
|
|
it('migrates the legacy sidebar table comment toggle into the metadata field list', () => {
|
|
expect(resolveSidebarTableMetadataFields(undefined, true)).toEqual(['comment', 'rows']);
|
|
});
|
|
|
|
it('preserves an explicit empty metadata selection while filtering unknown fields', () => {
|
|
expect(sanitizeSidebarTableMetadataFields([], [])).toEqual([]);
|
|
expect(sanitizeSidebarTableMetadataFields(['updatedAt', 'unknown', 'rows'], [])).toEqual(['updatedAt', 'rows']);
|
|
});
|
|
|
|
it('toggles metadata fields while preserving the configured order', () => {
|
|
expect(setSidebarTableMetadataFieldSelected(['rows'], 'size', true)).toEqual(['rows', 'size']);
|
|
expect(setSidebarTableMetadataFieldSelected(['comment', 'rows', 'size'], 'comment', false)).toEqual(['rows', 'size']);
|
|
expect(setSidebarTableMetadataFieldSelected(
|
|
['rows'],
|
|
'size',
|
|
true,
|
|
['size', 'comment', 'rows', 'createdAt', 'updatedAt'],
|
|
)).toEqual(['size', 'rows']);
|
|
});
|
|
|
|
it('resolves a complete metadata field order and applies it to selected fields', () => {
|
|
expect(resolveSidebarTableMetadataFieldOrder(['updatedAt', 'rows', 'unknown', 'rows'])).toEqual([
|
|
'updatedAt',
|
|
'rows',
|
|
'comment',
|
|
'size',
|
|
'createdAt',
|
|
]);
|
|
expect(applySidebarTableMetadataFieldOrder(
|
|
['comment', 'rows', 'updatedAt'],
|
|
['updatedAt', 'rows', 'comment', 'size', 'createdAt'],
|
|
)).toEqual(['updatedAt', 'rows', 'comment']);
|
|
});
|
|
});
|