Repository:
C:/QAx/langflow-playwright/langflow-e2eTests:tests/tests-automations/regression/Config:playwright.config.tsLast updated: 2026-05-05
[x]→ automated and validated — only assigned when the underlying Playwright test carries the@stabletag[-]→ automated, needs validation (test exists but is not yet@stable, or the entry refers to a Page/Helper rather than a test)[ ](empty) → needs automation[~]→ partially covered[!]→ covered but flaky / unstable
- [-]
SimpleAgentTemplatePage— loads Simple Agent template with configurable provider and model →pages/SimpleAgentTemplatePage.ts - [-]
SettingsPage— navigation to the settings page via user menu →pages/SettingsPage.ts - Component sidebar — component navigation bar with searchable parameter support
- Model Provider — navigation to the model provider management tab
- API Keys — navigation to the API keys / global variables tab
- Templates — navigation to the template selection tab (Starter Projects)
- Import Flow — navigation to import a flow via JSON
- Delete Flow — navigation to delete a flow
- MCP Config — navigation to configure MCP Server
- [-] OpenAI Provider Setup →
helpers/provider-setup/setup-openai.ts - [-] Anthropic Provider Setup →
helpers/provider-setup/setup-anthropic.ts - [-] Google Generative AI Provider Setup →
helpers/provider-setup/setup-google.ts - [-] Provider Map (
providerSetupMap) — central registration point →helpers/provider-setup/index.ts - [-] Provider validation via API (credit, valid key) →
helpers/provider-setup/collect-models.ts - [-] Collection of available models via UI (Settings → Model Providers) →
helpers/provider-setup/collect-models.ts - [-]
providers.json— status of each provider (active/inactive + reason) →data/providers.json - [-]
models.json— list of models per provider →data/models.json
- [-] Load Simple Agent with variable provider and model →
pages/SimpleAgentTemplatePage.ts - [-] Load Simple Agent with OpenAI (wrapper) →
helpers/flows/load-simple-agent-with-openai.ts
- Configure an MCP
- Configure a Custom Component
- Delete a component
- Run a flow
- Pause a flow
- Send a chat input
- Verify the chat output
Organized according to
tests/tests-automations/regression/
- [-] GET
/api/v1/health_check→ status 200, db ok - [-] GET
/api/v1/health→ returns uptime and version
- [-] POST
/api/v1/flows/→ creates flow, returns ID - [-] GET
/api/v1/flows/→ lists user flows - [-] GET
/api/v1/flows/{id}→ returns flow by ID - [-] PATCH
/api/v1/flows/{id}→ updates name/description - [-] DELETE
/api/v1/flows/{id}→ removes flow, returns 200 - [-] GET
/api/v1/flows/{id}after DELETE → should return 404
- [-] POST
/api/v1/run/{flow_id}withinput_value→ returns response - [-] POST with
tweaks→ parameters override flow configuration - [-] POST with custom
session_id - [-] POST with
input_type: "chat"andoutput_type: "chat" - POST with invalid API key → returns 401/403 →
api-invalid-key.spec.ts - [-] POST to non-existent flow → returns 404
- [-] GET
/api/v1/all→ lists all available components - [-] POST
/api/v1/custom_component→ creates custom component
- [-] GET
/api/v1/monitor/messages→ returns 200 with array - [-] GET with session_id filter returns only messages from that session
- [-] Generate curl for API execution
- [-] Generate Python code for integration
- [-] API access modal
- [-] Open component advanced options
- [-] Edit text field (input)
- [-] Edit dropdown
- [-] Edit text area (textarea)
- [-] Edit code field
- [-] Edit float field
- [-] Edit int field
- [-] Edit toggle field
- [-] Edit key-pair list
- [-] Edit input list
- [-] Edit table input
- [-] Edit slider
- [-] Edit tab component
- [-] Enable Tool Mode on a component
- [-] Group components in Tool Mode
- [-] Edit tools (edit-tools)
- [-] Outdated component notification
- [-] Update component action
- Update with breaking change — should alert user
- Legacy component visible via configuration
- [-] Edit Python code of custom component
- [-] Full custom component
- [-] ChatInput receives user message
- [-] ChatOutput displays LLM response
- [-] Chat Input/Output with user authentication
- [-] Prompt with variables in curly braces
- [-] Prompt modal
- [-] Dynamic port generated when adding a variable to the prompt
- [-] Removing a variable from the prompt deletes the corresponding port
- Renders on canvas with URL and API Response handles →
core-components/api-request-component-regression.spec.ts - Inspector fields accept URL and HTTP method values →
core-components/api-request-component-regression.spec.ts - Execute GET request and verify 200 status and output structure →
core-components/api-request-component-regression.spec.ts - Execute POST request and verify POST verb is sent (status 200) →
core-components/api-request-component-regression.spec.ts - Execute PUT request and verify PUT verb is sent (status 200) →
core-components/api-request-component-regression.spec.ts - Execute PATCH request and verify PATCH verb is sent (status 200) →
core-components/api-request-component-regression.spec.ts - Execute DELETE request and verify DELETE verb is sent (status 200) →
core-components/api-request-component-regression.spec.ts - Non-2xx HTTP response (404) propagated as status_code without crash →
core-components/api-request-component-regression.spec.ts - Query parameters embedded in URL are sent and echoed in response →
core-components/api-request-component-regression.spec.ts - Invalid URL error shows notification with descriptive error message →
core-components/api-request-component-regression.spec.ts - Headers table accepts key + value cell entries via inspector →
core-components/api-request-component-regression.spec.ts - cURL tab switches mode and exposes the cURL input field →
core-components/api-request-component-regression.spec.ts - cURL parser auto-fills URL field and executes the GET, returning 200 →
core-components/api-request-component-regression.spec.ts - Body table key + value entries (body field is
advanced=True) - Flow state persisted in database after autosave
- POST aceita JSON e text/plain retornando 202 com
status: "in progress"→core-components/webhook-component-regression.spec.ts - Flow salvo no banco contém o nó Webhook com endpoint="BACKEND_URL" →
core-components/webhook-component-regression.spec.ts - Campo cURL no inspector mostra URL válida com flow ID e flags corretas (
-X POST,Content-Type,-d) →core-components/webhook-component-regression.spec.ts - Data field vazia retorna objeto Data vazio
{}ao executar →core-components/webhook-component-regression.spec.ts - Campo endpoint (
str_endpoint) renderiza a URL real do webhook →core-components/webhook-component-regression.spec.ts - Botão de cópia copia a URL correta para o clipboard e exibe toast "Endpoint URL copied" →
core-components/webhook-component-regression.spec.ts - POST para flow inexistente retorna 404 →
core-components/webhook-component-regression.spec.ts - GET
/api/v1/monitor/messagesretorna 200 com array →core-components/webhook-component-regression.spec.ts - Payload JSON recebido é propagado corretamente como saída Data do componente →
core-components/webhook-component-regression.spec.ts - Payload inválido (não-JSON) é encapsulado em
{"payload": "..."}na saída →core-components/webhook-component-regression.spec.ts
- [-] Agent component displayed on canvas with default settings
- Configure system prompt in Agent component →
agent-system-prompt.spec.ts - Configure model provider directly in Agent component →
agent-provider-field-isolation.spec.ts
- Loop component renders on canvas with title and run button →
core-components/loop-component-regression.spec.ts - Correct handles: inputs-left, item-left, item-right, done-right →
core-components/loop-component-regression.spec.ts - Output inspection buttons present for item and done →
core-components/loop-component-regression.spec.ts - Run without connections shows "Flow build failed" notification without crash →
core-components/loop-component-regression.spec.ts - Loop iterates over 2 ArXiv articles (Research Translation Loop template) and aggregates response in Playground →
core-components/loop-component-regression.spec.ts - Loop stops when exit condition is met
- [-] Nested component
- [-] Enter and exit grouped component
- [-] Login with valid credentials
- [-] Login with invalid credentials — should display error message
- [-] Logout — should redirect to login screen
- [-] Auto-login enabled — should skip login screen
- [-] Auto-login disabled — should display login screen
- [-] Expired session — should redirect to login
- [-] Session cleanup after logout
- [-] Admin creates new user
- [-] Admin deactivates user
- [-] Admin activates inactive user
- [-] Admin renames user
- [-] Admin changes user password
- [-] Admin changes password — old password does not work after change
- [-] Isolation flow: user A cannot see user B's flows
- [-] Create global variable
- Use global variable in component (API key)
- [-] Edit existing global variable
- [-] Delete global variable
- [-] Create global variable of type "Generic"
- [-] Upload file via component
- [-] Upload files of different types (txt, pdf, json, py, wav)
- [-] File size limit
- [-] File management page
- Document ingestion via Split Text + Embeddings component
- Indexing in Vector Store — document available for query
- Vector Store query returns relevant chunks for the prompt
- Complete RAG pipeline (ingest → embed → store → retrieve → answer)
⚠️ Tests in this section useSimpleAgentTemplatePageand are parameterized by model viamodels.json. Runnpx playwright test tests/collect-models.spec.tsbefore executing these tests. SeeCLAUDE.mdin this folder for the complete guide.
- Agent responds without connected tools
- Agent displays valid response and optionally reasoning steps
- Stop button interrupts agent execution
- Execution duration displayed after successful run
- Response displayed progressively in the Playground (streaming)
- Duration indicator displayed on canvas (
node_duration_agent) after closing the playground - Agent responds to multiple consecutive messages in the same session
- [-] Agent displays reasoning steps in Playground →
agent-reasoning-steps.spec.ts - [-] Composio (tool integration for Agent) →
composio.spec.ts - Playground shows error when LLM run endpoint returns 500 (mocked invalid API key) →
llm-agents/llm-invalid-api-key-ui.spec.ts - Playground input remains usable after API error (mocked) →
llm-agents/llm-invalid-api-key-ui.spec.ts - Agent stops when configured stop condition is reached
- Agent stops when maximum number of iterations is reached →
agent-max-iterations.spec.ts - Agent with multiple configured tools executes correctly →
agent-multi-tool-selection.spec.ts - Agent with configured timeout respects the limit
- Switch provider in Agent → previous provider fields do not persist →
agent-provider-field-isolation.spec.ts - Flow with Agent saved and reopened → settings preserved →
agent-config-persistence.spec.ts - max_tokens truncates response as configured →
agent-max-tokens.spec.ts - reasoning_effort field appears/disappears based on selected model →
agent-reasoning-effort.spec.ts
- Memory Chatbot template loads with correct node and edge structure →
llm-agents/memory-history-regression.spec.ts - Message History retains context between messages in the same Playground session →
llm-agents/memory-history-regression.spec.ts - Session isolation: distinct session IDs have independent histories →
llm-agents/memory-history-regression.spec.ts - Without Message History, LLM does not retain context between messages →
llm-agents/memory-history-regression.spec.ts - n_messages parameter limits the number of retained messages →
agent-n-messages-limit.spec.ts(confirmed bug: value saved correctly by frontend but ignored in backend execution) - Agent uses custom
context_id— continuity between session messages →agent-context-id-continuity.spec.ts - Switching
context_idisolates history between distinct sessions →agent-context-id-isolation.spec.ts
- Agent with integrated external MCP tool executes action and returns result
- Agent executes multiple tools in sequence
- Tool returns error — agent handles it and continues execution →
agent-tool-error-handling.spec.ts - Multiple connected tools — agent selects the correct one for each prompt →
agent-multi-tool-selection.spec.ts - Tool with invalid name — validation prevents execution with clear message →
agent-tool-name-validation.spec.ts
- Inspect tools used by Agent in Playground
- Agent returns output in structured JSON format (output_schema) →
agent-structured-output.spec.ts - Agent returns output in correctly rendered Markdown
- Agent Instructions (system prompt) is respected in the model response →
agent-system-prompt.spec.ts - Input via direct field vs handle (ChatInput) — both work →
agent-input-sources.spec.ts - Empty response or model refusal — component does not crash →
agent-empty-refusal-response.spec.ts - Toggle add_current_date_tool works (enables/disables date tool) →
agent-current-date-tool.spec.ts - handle_parsing_errors=False fails explicitly vs True auto-corrects →
agent-parse-error-behavior.spec.ts - Image passed via input handle is processed correctly →
agent-multimodal-image-input.spec.ts
⚠️ Provider configuration tests via Settings useSettingsPage. Seehelpers/provider-setup/for the setup helpers of each provider.
- [-] Validate API keys of all providers via real call →
collect-models.spec.ts - [-] Collect available models per provider via UI →
collect-models.spec.ts - Inactive providers appear as skipped in tests with reason →
agent-component-regression.spec.ts - [-] Configure provider API key via Save Configuration (first setup) →
collect-models.spec.ts - [-] Replace provider API key via Replace Configuration (existing key) →
collect-models.spec.ts
- [-] Configure OpenAI API key via GlobalVariables
- [-] Select GPT model in agent
- [-] Execute flow with OpenAI
- Invalid API key error — display error message →
core-functionality/llm-agents/provider-invalid-auth-error.spec.ts
- [-] Configure Anthropic API key
- [-] Select Claude model in agent
- [-] Switch between Claude models (Sonnet, Haiku, Opus)
- Invalid Anthropic API key error →
core-functionality/llm-agents/provider-invalid-auth-error.spec.ts
- [-] Configure Google API key in agent
- [-] Select Gemini model in agent
- Invalid Google API key error →
core-functionality/llm-agents/provider-invalid-auth-error.spec.ts
- [-] "Manage Model Providers" modal
- [-] Available provider count
- [-] Language Model component — configuration
- [-] Model Input component
- [-] Add new provider via modal
- [-] Remove API key from existing provider
- Configure and execute flow with Ollama (local model)
- Configure and execute flow with Groq
- Configure and execute flow with Mistral
- Temperature parameter (verify via network payload) →
agent-max-tokens.spec.ts - Reasoning effort parameter — conditional field based on model →
agent-reasoning-effort.spec.ts - Maximum token count — response truncated as configured →
agent-max-tokens.spec.ts - Maximum agent iterations →
agent-max-iterations.spec.ts - Use of custom
context_idfor memory isolation →agent-context-id-isolation.spec.ts - Output formatting (JSON via output_schema, Markdown, plain text) →
agent-structured-output.spec.ts
- [-] View execution traces
- [-] Trace API returns paginated transactions
- [-] Trace displays latency of each component
- [-] Trace displays tokens consumed
- [-] System notifications
- [-] Execution error notification
- [-] Outdated component notification
- [-] Track user progress
- [-] User flow state cleanup
- [-] Component that raises Python error
- Flow with error displays appropriate message
- [-] Network error during execution
- [-] Execution timeout — clear message to user
- Open Playground → exercised by every
@stableplayground spec viaplayground-btn-flow-io - Send text message → exercised by
playground-ux.spec.ts,playground-message-edit.spec.ts,playground-session-nav.spec.tsand others - Receive LLM response → exercised by all specs that send a message via ChatInput → ChatOutput echo flow
- [-] Response streaming (SSE) → no dedicated spec; exercised implicitly by
playground-ux.spec.ts - [-] Response polling → no dedicated spec
- [-] Direct response → no dedicated spec
- Playground UX (playground-ux) →
playground/playground-ux.spec.ts - Send empty message — should disable send button →
playground/playground-empty-message-send.spec.ts(BUG: button enabled even when empty) - Send message while response is in progress — should wait or queue
- Attach image in chat — compact preview appears in input before sending →
core-functionality/playground/playground-output-image.spec.ts - Image rendered in user message bubble after sending →
core-functionality/playground/playground-output-image.spec.ts
- [-] Configure custom session ID →
playground/playground-session-id.spec.ts(needs rewrite — see issue) - Switch session — messages are isolated per session →
core-functionality/playground/playground-session-nav.spec.ts - Edit user message — hover reveals edit button, saved changes replace original text →
core-functionality/playground/playground-message-edit.spec.ts - Cancel message edit — original text is preserved →
core-functionality/playground/playground-message-edit.spec.ts - Message edited in playground is reflected in Session Logs →
core-functionality/playground/playground-message-edit.spec.ts - Clear chat removes all messages from Default Session (clear-chat-option via header menu) →
core-functionality/playground/playground-session-clear.spec.ts - Clear full session history (Default session) →
playground/playground-clear-history.spec.ts - Delete user-created session →
playground/playground-clear-history.spec.ts - History persists when reopening Playground →
llm-agents/memory-history-regression.spec.ts,core-functionality/playground/playground-history-persist.spec.ts - Rename unavailable for the Default Session →
core-functionality/playground/playground-session-rename.spec.ts - Rename unavailable for a session with no messages →
core-functionality/playground/playground-session-rename.spec.ts - Rename available and functional for a session with messages (Enter confirms, Escape cancels) →
core-functionality/playground/playground-session-rename.spec.ts - Create new session via new-chat button →
core-functionality/playground/playground-session-nav.spec.ts - Switch between sessions via session selector sidebar →
core-functionality/playground/playground-session-nav.spec.ts - Open Message Logs via session more-menu →
core-functionality/playground/playground-message-logs.spec.ts - Delete messages inside Message Logs table →
core-functionality/playground/playground-message-logs.spec.ts - Select individual session checkbox → reveals bulk-delete-button →
core-functionality/playground/playground-bulk-delete.spec.ts - Select all non-default sessions via select-all-checkbox →
core-functionality/playground/playground-bulk-delete.spec.ts - Bulk delete selected sessions → Default Session preserved →
core-functionality/playground/playground-bulk-delete.spec.ts
- Playground fullscreen mode →
playground/playground-fullscreen.spec.ts - [-] Shareable Playground — URL generation validated (switch enables sharing, href matches /playground/uuid) →
playground/playground-shareable-url.spec.ts - [!] Voice mode (voice assistant) →
ui-ux/voice-assistant.spec.ts(all tests unconditionally skipped — spec is a stub) - Stop button in Playground →
core-functionality/playground/stop-button-playground.spec.ts
- [-] Copy component output →
playground/output-modal-copy-button.spec.ts(needs rewrite — see issue) - [-] Copy button in output →
playground/output-modal-copy-button.spec.ts(needs rewrite — see issue)
- JSON Data output renders as code block →
core-functionality/playground/playground-output-data.spec.ts - DataFrame output renders as Markdown table →
core-functionality/playground/playground-output-data.spec.ts
- [-] Create new folder
- [-] Rename folder
- [-] Delete empty folder
- [-] Delete folder with flows inside
- [-] Integrity after deletion
- [-] Create folder after deleting all folders
- [-] Upload flow by drag-and-drop to folder
- [-] Move flow to another folder
- [~] Navigate between folders
- [-] Search flow by name filters results correctly
- [-] Folders in navigation sidebar
- [-] Basic Prompting (OpenAI)
- [-] Basic Prompting (Anthropic)
- [-] Simple Agent (OpenAI)
- [-] Simple Agent (Anthropic)
- [-] Simple Agent with memory
- [-] Vector Store RAG
- Memory Chatbot
- [-] Basic Prompting (OpenAI) →
core/integrations/Basic Prompting.spec.ts - [-] Basic Prompting (Anthropic) →
core/integrations/Basic Prompting Anthropic.spec.ts - [-] Simple Agent (OpenAI) →
core/integrations/Simple Agent.spec.ts - [-] Simple Agent (Anthropic) →
core/integrations/Simple Agent Anthropic.spec.ts - [-] Simple Agent with memory →
core/integrations/Simple Agent Memory.spec.ts - [-] Vector Store RAG →
core/integrations/Vector Store.spec.ts - Memory Chatbot →
llm-agents/memory-history-regression.spec.ts
- [-] Blog Writer
- [-] Instagram Copywriter
- [-] Twitter Thread Generator
- [-] SEO Keyword Generator
- [-] Portfolio Website Code Generator
- [-] SaaS Pricing
- [-] Document QA
- [-] Invoice Summarizer
- [-] Financial Report Parser
- [-] Image Sentiment Analysis
- [-] Text Sentiment Analysis
- [-] Youtube Analysis
- [-] Dynamic Agent
- [-] Hierarchical Agent
- [-] Sequential Task Agent
- [-] Social Media Agent
- [-] Travel Planning Agent
- [-] Market Research
- [-] Research Translation Loop
- [-] Pokedex Agent
- [-] Price Deal Finder
- [-] News Aggregator
- [-] Custom Component Generator
- [-] Prompt Chaining
- [-] Decision Flow
- [-] Similarity
- [-] MCP Server (starter projects)
- [-] Create blank flow
- [-] Create flow from template
- [-] Create flow by duplicating an existing one
- [-] Create flow via JSON file import
- [-] Rename flow via editor header
- [-] Edit flow name and description
- [-] Flow auto-save on changes
- [-] Flow settings
- [-] Delete individual flow
- [-] Delete multiple flows (bulk actions)
- [-] Confirm deleted flow does not appear in listing
- [-] Export flow as JSON
- [-] Import flow via JSON file upload
- [~] Import flow with outdated components
- [-] Import invalid JSON — should display error message
- [-] Lock flow — prevents editing
- [-] Unlock flow
- [-] Move flow between folders via API
- [-] Publish flow →
flow-functionality/publish-flow.spec.ts - [-] Save flow components as template
- [-] Execute flow via Run button →
core/features/run-flow.spec.ts - [-] Stop building flow →
core/features/stop-building.spec.ts - [!] Playground button disabled with empty flow — needs review →
regression/flow-functionality/generalBugs-shard-3.spec.ts(test skipped: assertion was a no-op, current Langflow behavior to confirm)
⚠️ Tests that execute agents via MCP must useSimpleAgentTemplatePageandmodels.json. SeeCLAUDE.mdin this folder for the complete guide.
- Configure connection with external MCP server (stdio or HTTP)
- List available tools via MCP protocol
- Execute MCP server tool and receive result in flow
- List available resources via MCP protocol
- Consume resource URI and inject content into flow
- MCP server connection error displays clear message
- [-] MCP Server tab in flow
- [-] Add MCP server via modal
- [-] Starter project with MCP
- Flow exposed as MCP server — verify generated endpoint
- Execute MCP server tool via MCP protocol
- Resource exposed by server is accessible via URI
- Prompt exposed by server returns correct template
- [-] Search component by name
- [-] Hover over component shows tooltip/preview
- [-] Keyboard search (keyboard shortcut)
- [-] Filter components by category
- [-] Sidebar shows correct provider count
- [-] Drag component from sidebar to canvas
- [-] Double-click in sidebar adds component to canvas
- [-] Hover + click "+" button adds component to canvas
- [-] Added component appears with default settings
- [-] Connect two compatible components
- [-] Prevent connection between incompatible types
- [-] Delete edge/connection
- [-] Filter edges by data type
- [-] Reconnect existing edge
- [-] Delete component from canvas
- [-] Copy and paste component (Ctrl+C / Ctrl+V)
- [-] Canvas keyboard shortcuts
- [-] Minimize component on canvas
- [-] Move component within canvas
- [-] Select multiple components via box selection
- [-] Delete multiple selected components
- [-] Deselect node by clicking on empty canvas area
- [-] Deselect node via Escape
- [-] Zoom in / Zoom out
- [-] Fit View centers nodes
- [-] Fit View button in toolbar
- [-] Scroll to navigate canvas
- [~] Minimap — feature flag-gated
- [-] Create component group
- [-] Ungroup components
- [-] Expand/collapse group
- [-] Freeze component
- [-] Freeze path
- [-] Unfreeze component
- [-] Add sticky note
- Edit sticky note text
- [-] Change sticky note color
- [-] Resize sticky note
- [-] Delete sticky note
- [-] Context menu via right-click on canvas
- [-] Context menu via right-click on component
- [-] Main menu actions
- [-] Access Settings page
- [-] Message history settings
- Change appearance/theme settings — dark/light toggle updates #body.dark class →
ui-ux/settings-theme-toggle.spec.ts - [-] Keyboard shortcuts work in editor
- [~] All documented shortcuts work
Validated = test carries the
@stabletag. Needs validation = automated but not yet@stable(bug, flake under investigation, or pending team review).
| Module | Total | Validated [x] |
Needs validation [-] |
Partial [~]/[!] |
Not automated [ ] |
|---|---|---|---|---|---|
api/flows/ — REST API |
21 | 0 | 21 | 0 | 0 |
core-components/ — Component Config |
22 | 0 | 20 | 0 | 2 |
core-components/ — Core Components |
43 | 28 | 10 | 0 | 5 |
core-functionality/auth/ |
19 | 0 | 18 | 0 | 1 |
core-functionality/knowledge-ingestion/ |
8 | 0 | 4 | 0 | 4 |
core-functionality/llm-agents/ |
40 | 13 | 2 | 0 | 25 |
core-functionality/model-provider/ |
31 | 4 | 18 | 0 | 9 |
core-functionality/observability-monitoring/ |
13 | 0 | 12 | 0 | 1 |
core-functionality/playground/ |
38 | 29 | 7 | 1 | 1 |
core-functionality/project-management/ |
11 | 0 | 10 | 1 | 0 |
core-functionality/templates/ |
41 | 2 | 39 | 0 | 0 |
flow-functionality/ |
23 | 0 | 21 | 2 | 0 |
mcp/client/ |
6 | 0 | 0 | 0 | 6 |
mcp/server/ |
7 | 0 | 3 | 0 | 4 |
ui-ux/ — Canvas |
42 | 0 | 40 | 1 | 1 |
ui-ux/ — Settings |
5 | 1 | 3 | 1 | 0 |
| TOTAL | 370 | 77 (21%) | 228 (62%) | 6 (2%) | 59 (16%) |
Note:
Validated [x]= checklist bullets, not unique tests. A single@stabletest may cover multiple bullets (e.g. the agent suite covers 7 bullets viatest.step()). The canonical list of 51 unique@stabletests is in Phase 0 — Validated below.
Tests carrying the
@stabletag — included in the weekly stable workflow. 51 tests across 20 spec files.
- Loop component — renders correctly with all handles and output inspection buttons →
core-components/loop-component-regression.spec.ts - Loop component — run without connections shows build failed notification →
core-components/loop-component-regression.spec.ts - Loop component — Research Translation Loop template: full wiring and iterates over 2 ArXiv papers →
core-components/loop-component-regression.spec.ts - Webhook component — HTTP POST accepts JSON and plain-text bodies returning 202 →
core-components/webhook-component-regression.spec.ts - Webhook component — flow is saved to database and contains the Webhook node →
core-components/webhook-component-regression.spec.ts - Webhook component — cURL command in inspector shows valid POST URL with flow ID →
core-components/webhook-component-regression.spec.ts - Webhook component — empty data field returns empty Data object →
core-components/webhook-component-regression.spec.ts - Webhook component — endpoint field renders the actual webhook URL →
core-components/webhook-component-regression.spec.ts - Webhook component — copy button copies the endpoint URL to clipboard →
core-components/webhook-component-regression.spec.ts - Webhook component — POST to non-existent flow name returns 404 →
core-components/webhook-component-regression.spec.ts - Webhook component — valid JSON payload is propagated as structured Data output →
core-components/webhook-component-regression.spec.ts - Webhook component — invalid JSON payload is encapsulated in
{payload: ...}→core-components/webhook-component-regression.spec.ts - GET
/api/v1/monitor/messagesreturns 200 with array response →core-components/webhook-component-regression.spec.ts
- agent interaction suite (parameterized per provider/model: tools-free response, reasoning steps, streaming + duration, multiple consecutive messages, canvas duration indicator) →
agent-component-regression.spec.ts - agent stop button must halt execution mid-run →
agent-component-regression.spec.ts - playground shows error when LLM run endpoint returns 500 (mocked invalid API key) →
llm-invalid-api-key-ui.spec.ts - playground input remains usable after API error (mocked) →
llm-invalid-api-key-ui.spec.ts - memory chatbot template loads with correct node structure →
memory-history-regression.spec.ts - message history context retention suite (within-session retention, accumulation, persistence after reopen) →
memory-history-regression.spec.ts - session isolation: new session has no context from previous session →
memory-history-regression.spec.ts - should display error message when using invalid authentication for provider (parameterized per provider) →
provider-invalid-auth-error.spec.ts
- selecting an individual session checkbox must reveal the bulk-delete-button →
playground-bulk-delete.spec.ts - select-all-checkbox must select all non-default sessions →
playground-bulk-delete.spec.ts - bulk-delete-button must remove all selected sessions from the sidebar →
playground-bulk-delete.spec.ts - clear chat on Default session must remove messages but keep the session →
playground-clear-history.spec.ts - deleting a user-created session must remove it and return to Default session →
playground-clear-history.spec.ts - send button is enabled when input is empty (Langflow bug) →
playground-empty-message-send.spec.ts - send button becomes enabled after typing a message →
playground-empty-message-send.spec.ts - clearing the input after typing leaves the field empty →
playground-empty-message-send.spec.ts - playground opens in fullscreen with chat input visible →
playground-fullscreen.spec.ts - playground closes and reopens correctly from the flow editor →
playground-fullscreen.spec.ts - edit user message — hover reveals edit button and saved changes replace original text →
playground-message-edit.spec.ts - cancel message edit — original text is preserved →
playground-message-edit.spec.ts - message edited in playground is reflected in Session Logs →
playground-message-edit.spec.ts - message-logs-option must open the Session Logs modal for the active session →
playground-message-logs.spec.ts - selecting messages in the log table and deleting them must reduce the row count →
playground-message-logs.spec.ts - playground must render JSON Data output as a code block →
playground-output-data.spec.ts - playground must render DataFrame output as a markdown table →
playground-output-data.spec.ts - playground must show image compact preview in input area after attaching an image →
playground-output-image.spec.ts - playground must display uploaded image in user message after sending →
playground-output-image.spec.ts - clear-chat removes all messages from Default Session →
playground-session-clear.spec.ts - new-chat button must add a new session entry to the sidebar →
playground-session-nav.spec.ts - session selector sidebar must switch to the selected session →
playground-session-nav.spec.ts - rename option must not be available for the Default Session →
playground-session-rename.spec.ts - rename option must not be available for a session with no messages →
playground-session-rename.spec.ts - rename option must be available and functional for a session with messages →
playground-session-rename.spec.ts - user message must appear instantly in playground before AI responds →
playground-ux.spec.ts - playground must scroll to latest message after sending →
playground-ux.spec.ts - playground input field must be ready after flow responds →
playground-ux.spec.ts - User must be able to stop building from inside Playground →
stop-button-playground.spec.ts
- dark and light mode toggle correctly updates the body class →
settings-theme-toggle.spec.ts
Validate (
[-]) and create ([ ]) in the modules below. See details in Part II.
| Module | Validate ([-]) |
Create ([ ]) |
|---|---|---|
api/flows/ — REST API |
21 | 0 |
core-components/ — Component Config |
20 | 2 |
core-components/ — Core Components |
18 | 9 |
core-functionality/auth/ |
18 | 1 |
core-functionality/llm-agents/ |
2 | 25 |
core-functionality/model-provider/ |
18 | 9 |
core-functionality/playground/ |
7 | 1 |
mcp/client/ |
0 | 6 |
mcp/server/ |
3 | 4 |
ui-ux/ — Canvas |
40 | 1 |
Remaining modules after Phase 1 completion. See details in Part II.
| Module | Validate ([-]) |
Create ([ ]) |
|---|---|---|
core-functionality/observability-monitoring/ |
12 | 1 |
core-functionality/knowledge-ingestion/ |
4 | 4 |
flow-functionality/ |
20 | 0 |
core-functionality/project-management/ |
10 | 0 |
core-functionality/templates/ |
39 | 0 |
ui-ux/ — Settings |
3 | 0 |