From 9b4c0ea36eb689b36c4f6716dbfcf6cc7bc0159a Mon Sep 17 00:00:00 2001 From: xfy Date: Mon, 6 Jul 2026 14:08:06 +0800 Subject: [PATCH] =?UTF-8?q?style(editor):=20biome=20=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?=E5=8C=96=20runnable=20=E6=A8=A1=E6=80=81=E6=A1=86=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit biome check --write 修正 import 排序 + 格式化 openRunnableModal 链式调用 (TDD 阶段子代理未跑 make fix,此处补齐以过 make lint)。 --- .../src/__tests__/runnable-modal.test.ts | 18 +++++++++++++----- libs/tiptap-editor/src/slash-command.ts | 12 ++++++++++-- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/libs/tiptap-editor/src/__tests__/runnable-modal.test.ts b/libs/tiptap-editor/src/__tests__/runnable-modal.test.ts index adcfe10..a9163a6 100644 --- a/libs/tiptap-editor/src/__tests__/runnable-modal.test.ts +++ b/libs/tiptap-editor/src/__tests__/runnable-modal.test.ts @@ -1,5 +1,5 @@ -import { afterEach, describe, expect, it, vi } from 'vitest'; import type { Editor } from '@tiptap/core'; +import { afterEach, describe, expect, it, vi } from 'vitest'; import { openRunnableModal } from '../slash-command'; /** @@ -54,10 +54,14 @@ describe('openRunnableModal', () => { timeoutInput.value = '10'; timeoutInput.dispatchEvent(new Event('input', { bubbles: true })); // 点插入 - const insertBtn = document.querySelector('.tiptap-runnable-actions .insert')!; + const insertBtn = document.querySelector( + '.tiptap-runnable-actions .insert', + )!; insertBtn.click(); expect(calls).toHaveLength(1); - expect(calls[0].language).toBe('python runnable {"timeout_secs":10,"memory_mb":256,"allow_network":false}'); + expect(calls[0].language).toBe( + 'python runnable {"timeout_secs":10,"memory_mb":256,"allow_network":false}', + ); expect(document.querySelector('.tiptap-runnable-modal')).toBeNull(); }); @@ -74,7 +78,9 @@ describe('openRunnableModal', () => { const timeoutInput = document.querySelector('#runnable-timeout')!; timeoutInput.value = '0'; timeoutInput.dispatchEvent(new Event('input', { bubbles: true })); - const insertBtn = document.querySelector('.tiptap-runnable-actions .insert')!; + const insertBtn = document.querySelector( + '.tiptap-runnable-actions .insert', + )!; expect(insertBtn.disabled).toBe(true); // 且点插入(即使强制)不应触发——实际 disabled 按钮不接收 click,这里只验状态 insertBtn.click(); @@ -85,7 +91,9 @@ describe('openRunnableModal', () => { const { editor } = mockEditor(); openRunnableModal(editor); const timeoutInput = document.querySelector('#runnable-timeout')!; - const insertBtn = document.querySelector('.tiptap-runnable-actions .insert')!; + const insertBtn = document.querySelector( + '.tiptap-runnable-actions .insert', + )!; timeoutInput.value = '0'; timeoutInput.dispatchEvent(new Event('input', { bubbles: true })); expect(insertBtn.disabled).toBe(true); diff --git a/libs/tiptap-editor/src/slash-command.ts b/libs/tiptap-editor/src/slash-command.ts index 28caee0..139650d 100644 --- a/libs/tiptap-editor/src/slash-command.ts +++ b/libs/tiptap-editor/src/slash-command.ts @@ -552,11 +552,19 @@ export function openRunnableModal(editor: Editor): void { function updateInsertEnabled(): void { const t = Number(timeoutInput.value); const m = Number(memInput.value); - insertBtn.disabled = !(t >= TIMEOUT_RANGE.min && t <= TIMEOUT_RANGE.max && m >= MEMORY_RANGE.min && m <= MEMORY_RANGE.max); + insertBtn.disabled = !( + t >= TIMEOUT_RANGE.min && + t <= TIMEOUT_RANGE.max && + m >= MEMORY_RANGE.min && + m <= MEMORY_RANGE.max + ); } function insert(): void { - editor.chain().setCodeBlock({ language: buildRunnableInfo(state) }).run(); + editor + .chain() + .setCodeBlock({ language: buildRunnableInfo(state) }) + .run(); close(); }