一些检查失败了
automerge / automerge (push) Has been cancelled
react-native-android-build-apk / AssembleRelease (push) Has been cancelled
Build macOS M1 / Main (push) Has been cancelled
Joplin Continuous Integration / Main (macos-15-intel) (push) Has been cancelled
Joplin Continuous Integration / Main (ubuntu-22.04) (push) Has been cancelled
Joplin Continuous Integration / Main (ubuntu-22.04-arm) (push) Has been cancelled
Joplin Continuous Integration / Main (windows-11-vs2026-arm) (push) Has been cancelled
Joplin Continuous Integration / Main (windows-2025) (push) Has been cancelled
Joplin Continuous Integration / ServerDockerImage (ubuntu-22.04) (push) Has been cancelled
Joplin Continuous Integration / ServerDockerImage (ubuntu-22.04-arm) (push) Has been cancelled
Joplin UI tests / Main (ubuntu-22.04) (push) Has been cancelled
Joplin UI tests / Main (windows-2025) (push) Has been cancelled
Joplin UI tests / Mobile (push) Has been cancelled
Close stale issues / ProcessStaleIssues (push) Has been cancelled
78 行
1.7 KiB
TypeScript
78 行
1.7 KiB
TypeScript
import { loadLayout, saveLayout } from './persist';
|
|
import { LayoutItem, LayoutItemDirection } from './types';
|
|
import validateLayout from './validateLayout';
|
|
|
|
describe('persist', () => {
|
|
|
|
test('should save layout and filter out non-user properties', () => {
|
|
const layout: LayoutItem = validateLayout({
|
|
key: 'root',
|
|
width: 100,
|
|
height: 100,
|
|
direction: LayoutItemDirection.Row,
|
|
children: [
|
|
{
|
|
key: 'col1',
|
|
width: 50,
|
|
},
|
|
{
|
|
key: 'col2',
|
|
direction: LayoutItemDirection.Column,
|
|
children: [
|
|
{ key: 'item1', height: 20 },
|
|
{ key: 'item2' },
|
|
],
|
|
},
|
|
{
|
|
key: 'col3',
|
|
},
|
|
],
|
|
});
|
|
|
|
const toSave = saveLayout(layout);
|
|
|
|
expect(toSave.key).toBe('root');
|
|
expect(toSave.width).toBeUndefined();
|
|
expect(toSave.height).toBeUndefined();
|
|
expect(toSave.direction).toBeUndefined();
|
|
expect(toSave.children.length).toBe(3);
|
|
|
|
expect(toSave.children[1].key).toBe('col2');
|
|
expect(toSave.children[1].direction).toBeUndefined();
|
|
});
|
|
|
|
test('should load a layout', () => {
|
|
const layout: LayoutItem = {
|
|
key: 'root',
|
|
children: [
|
|
{
|
|
key: 'col1',
|
|
width: 50,
|
|
},
|
|
{
|
|
key: 'col2',
|
|
children: [
|
|
{ key: 'item1', height: 20 },
|
|
{ key: 'item2' },
|
|
],
|
|
},
|
|
{
|
|
key: 'col3',
|
|
},
|
|
],
|
|
};
|
|
|
|
const loaded = loadLayout(layout, null, { width: 100, height: 200 });
|
|
|
|
expect(loaded.key).toBe('root');
|
|
expect(loaded.width).toBe(100);
|
|
expect(loaded.height).toBe(200);
|
|
expect(loaded.direction).toBe(LayoutItemDirection.Row);
|
|
expect(loaded.children.length).toBe(3);
|
|
|
|
expect(loaded.children[1].key).toBe('col2');
|
|
expect(loaded.children[1].direction).toBe(LayoutItemDirection.Column);
|
|
});
|
|
|
|
});
|