feat: rudimentary menu working now
This commit is contained in:
45
tests/renderer/components/menuInsertTarget.test.ts
Normal file
45
tests/renderer/components/menuInsertTarget.test.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
import { describe, expect, it } from 'vitest';
|
||||
|
||||
import type { MenuItemData } from '../../../src/main/shared/electronApi';
|
||||
import { resolveInsertTarget } from '../../../src/renderer/components/MenuEditorView/menuInsertTarget';
|
||||
|
||||
function createTree(): MenuItemData[] {
|
||||
return [
|
||||
{
|
||||
id: 'home',
|
||||
title: 'Home',
|
||||
kind: 'page',
|
||||
children: [],
|
||||
},
|
||||
{
|
||||
id: 'docs',
|
||||
title: 'Docs',
|
||||
kind: 'submenu',
|
||||
children: [
|
||||
{
|
||||
id: 'about',
|
||||
title: 'About',
|
||||
kind: 'page',
|
||||
children: [],
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
describe('resolveInsertTarget', () => {
|
||||
it('inserts on root level when no selection exists', () => {
|
||||
const result = resolveInsertTarget(createTree(), null);
|
||||
expect(result).toEqual({ parentPath: [], index: 2 });
|
||||
});
|
||||
|
||||
it('inserts as first child when selected node is submenu', () => {
|
||||
const result = resolveInsertTarget(createTree(), 'docs');
|
||||
expect(result).toEqual({ parentPath: [1], index: 0 });
|
||||
});
|
||||
|
||||
it('inserts as next sibling when selected node is page', () => {
|
||||
const result = resolveInsertTarget(createTree(), 'home');
|
||||
expect(result).toEqual({ parentPath: [], index: 1 });
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user