diff --git a/apps/electron/src/renderer/components/CanvasView.test.tsx b/apps/electron/src/renderer/components/CanvasView.test.tsx new file mode 100644 index 00000000..a797eadf --- /dev/null +++ b/apps/electron/src/renderer/components/CanvasView.test.tsx @@ -0,0 +1,70 @@ +/** + * @vitest-environment jsdom + */ + +import { render, screen } from '@testing-library/react' +import React from 'react' +import { beforeEach, describe, expect, it, vi } from 'vitest' +import { CanvasView } from './CanvasView' + +const mockUseIdentity = vi.fn() +const mockUseNode = vi.fn() + +vi.mock('@xnetjs/canvas', async () => { + const ReactModule = await import('react') + + return { + Canvas: ReactModule.forwardRef(function MockCanvas() { + return
canvas
+ }), + createNode: vi.fn(() => ({ + id: 'node-1', + type: 'card', + position: { x: 0, y: 0, width: 100, height: 100 }, + properties: {} + })) + } +}) + +vi.mock('@xnetjs/data', () => ({ + CanvasSchema: { + schema: { + '@id': 'xnet://schema/canvas' + } + } +})) + +vi.mock('@xnetjs/react', () => ({ + useIdentity: (...args: unknown[]) => mockUseIdentity(...args), + useNode: (...args: unknown[]) => mockUseNode(...args) +})) + +describe('CanvasView', () => { + beforeEach(() => { + const nodesMap = { + size: 0, + observe: vi.fn(), + unobserve: vi.fn() + } + + mockUseIdentity.mockReturnValue({ did: 'did:key:test' }) + mockUseNode.mockReturnValue({ + data: { title: 'Workspace Canvas' }, + doc: { + getMap: vi.fn(() => nodesMap) + }, + loading: false, + awareness: null + }) + }) + + it('keeps the canvas host at full height for the renderer shell', () => { + render() + + const canvas = screen.getByTestId('mock-canvas') + const canvasHost = canvas.parentElement?.parentElement + + expect(canvasHost).not.toBeNull() + expect(canvasHost?.className).toContain('h-full') + }) +}) diff --git a/apps/electron/src/renderer/components/CanvasView.tsx b/apps/electron/src/renderer/components/CanvasView.tsx index ea2a0fe0..b086aa63 100644 --- a/apps/electron/src/renderer/components/CanvasView.tsx +++ b/apps/electron/src/renderer/components/CanvasView.tsx @@ -227,7 +227,7 @@ export const CanvasView = forwardRef(function } return ( -
+
{canvas?.title || 'Workspace Canvas'}
diff --git a/packages/ui/src/primitives/Menu.tsx b/packages/ui/src/primitives/Menu.tsx index e68bdf73..fd24578a 100644 --- a/packages/ui/src/primitives/Menu.tsx +++ b/packages/ui/src/primitives/Menu.tsx @@ -115,11 +115,7 @@ export function MenuSeparator() { * A label for use with the simple Menu component. */ export function MenuLabel({ children }: { children: React.ReactNode }) { - return ( - - {children} - - ) + return
{children}
} // ─── Compound Components (for advanced usage) ───────────────────────