// T054: Vitest test for DSLEditor — validates onValidationChange callback and Save button disable logic // ตรวจสอบ: Validate กดแล้ว workflowApi.validateDSL ถูกเรียก; errors → onValidationChange(true); valid → onValidationChange(false) import { describe, it, expect, vi, beforeEach } from 'vitest'; import { render, screen, waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { DSLEditor } from '../dsl-editor'; import { workflowApi } from '@/lib/api/workflows'; // Mock Monaco editor — ไม่มี DOM environment สำหรับ Monaco vi.mock('@monaco-editor/react', () => ({ default: ({ onChange }: { onChange?: (v: string) => void }) => (