diff --git a/src/components/graph/CanvasModeSelector.test.ts b/src/components/graph/CanvasModeSelector.test.ts new file mode 100644 index 0000000000..1133873544 --- /dev/null +++ b/src/components/graph/CanvasModeSelector.test.ts @@ -0,0 +1,153 @@ +import { mount } from '@vue/test-utils' +import { describe, expect, it, vi } from 'vitest' +import { createI18n } from 'vue-i18n' + +import CanvasModeSelector from '@/components/graph/CanvasModeSelector.vue' + +const mockExecute = vi.fn() +const mockGetCommand = vi.fn().mockReturnValue({ + keybinding: { + combo: { + getKeySequences: () => ['V'] + } + } +}) +const mockFormatKeySequence = vi.fn().mockReturnValue('V') + +vi.mock('@/stores/commandStore', () => ({ + useCommandStore: () => ({ + execute: mockExecute, + getCommand: mockGetCommand, + formatKeySequence: mockFormatKeySequence + }) +})) + +vi.mock('@/renderer/core/canvas/canvasStore', () => ({ + useCanvasStore: () => ({ + canvas: { read_only: false } + }) +})) + +const i18n = createI18n({ + legacy: false, + locale: 'en', + messages: { + en: { + graphCanvasMenu: { + select: 'Select', + hand: 'Hand', + canvasMode: 'Canvas Mode' + } + } + } +}) + +const mockPopoverHide = vi.fn() + +function createWrapper() { + return mount(CanvasModeSelector, { + global: { + plugins: [i18n], + stubs: { + Popover: { + template: '