From 38f5ee51ac548e5842e7e7bb243bbe8933838106 Mon Sep 17 00:00:00 2001 From: Nicolas Bonamy Date: Fri, 10 May 2024 13:02:37 -0500 Subject: [PATCH] automator test --- tests/unit/automator.test.ts | 59 ++++++++++++++++++++++++++++++++++++ tests/unit/commander.test.ts | 2 +- 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 tests/unit/automator.test.ts diff --git a/tests/unit/automator.test.ts b/tests/unit/automator.test.ts new file mode 100644 index 0000000..e8df194 --- /dev/null +++ b/tests/unit/automator.test.ts @@ -0,0 +1,59 @@ + +import { vi, expect, test } from 'vitest' +import { clipboard } from 'electron' +import Automator from '../../src/automations/automator' +import MacosAutomator from '../../src/automations/macos' +import RobotAutomator from '../../src/automations/robot' + +vi.mock('electron', () => ({ + clipboard: { + readText: vi.fn(), + writeText: vi.fn() + } +})) + +vi.mock(`../../src/automations/${process.platform === 'darwin' ? 'macos' : 'robot'}.ts`, async () => { + const MockAutomator = vi.fn() + MockAutomator.prototype.selectAll = vi.fn() + MockAutomator.prototype.moveCaretBelow = vi.fn() + MockAutomator.prototype.copySelectedText = vi.fn() + MockAutomator.prototype.pasteText = vi.fn() + return { default: MockAutomator } +}) + +test('Create', async () => { + const automator = new Automator() + expect(automator).toBeTruthy() +}) + +const prototype = process.platform === 'darwin' ? MacosAutomator.prototype : RobotAutomator.prototype + +test('Select all', async () => { + const automator = new Automator() + await automator.selectAll() + expect(prototype.selectAll).toHaveBeenCalled() +}) + +test('Move caret below', async () => { + const automator = new Automator() + await automator.moveCaretBelow() + expect(prototype.moveCaretBelow).toHaveBeenCalled() +}) + +test('Get selected text', async () => { + const automator = new Automator() + await automator.getSelectedText() + expect(prototype.copySelectedText).toHaveBeenCalled() +}) + +test('Paste text', async () => { + const automator = new Automator() + await automator.pasteText('text') + expect(prototype.pasteText).toHaveBeenCalled() +}) + +test('Copy to clipboard', async () => { + const automator = new Automator() + await automator.copyToClipboard('text') + expect(clipboard.writeText).toHaveBeenCalledWith('text') +}) diff --git a/tests/unit/commander.test.ts b/tests/unit/commander.test.ts index 751a09b..b5070ad 100644 --- a/tests/unit/commander.test.ts +++ b/tests/unit/commander.test.ts @@ -1,6 +1,6 @@ -import { Command } from '../../src/types/index.d' import { vi, beforeEach, expect, test } from 'vitest' +import { Command } from '../../src/types/index.d' import { store } from '../../src/services/store' import defaults from '../../defaults/settings.json' import * as commander from '../../src/automations/commander'