migrate tests to be e2e
This commit is contained in:
parent
8c26630518
commit
3188103e61
17 changed files with 2 additions and 257 deletions
|
|
@ -42,26 +42,13 @@ make frontend &
|
|||
# Give some time for the frontend to start (adjust sleep duration as needed)
|
||||
sleep 10
|
||||
|
||||
# Navigate to the test directory
|
||||
cd src/frontend
|
||||
|
||||
# Run frontend only Playwright tests with or without UI based on the --ui flag
|
||||
if [ "$ui" = true ]; then
|
||||
PLAYWRIGHT_HTML_REPORT=playwright-report/onlyFront npx playwright test tests/onlyFront --ui --project=chromium
|
||||
else
|
||||
PLAYWRIGHT_HTML_REPORT=playwright-report/onlyFront npx playwright test tests/onlyFront --project=chromium
|
||||
fi
|
||||
|
||||
# Navigate back to the project root directory
|
||||
cd ../../
|
||||
|
||||
# Start the backend using 'make backend' in the background
|
||||
make backend &
|
||||
make backend LANGFLOW_DATABASE_URL=sqlite:// &
|
||||
|
||||
# Give some time for the backend to start (adjust sleep duration as needed)
|
||||
sleep 25
|
||||
|
||||
# Navigate back to the test directory
|
||||
# Navigate to the test directory
|
||||
cd src/frontend
|
||||
|
||||
# Run Playwright tests with or without UI based on the --ui flag
|
||||
|
|
|
|||
2684
src/frontend/tests/end-to-end/assets/collection.json
Normal file
2684
src/frontend/tests/end-to-end/assets/collection.json
Normal file
File diff suppressed because it is too large
Load diff
419
src/frontend/tests/end-to-end/assets/flow.json
Normal file
419
src/frontend/tests/end-to-end/assets/flow.json
Normal file
|
|
@ -0,0 +1,419 @@
|
|||
{
|
||||
"description": "Use this Tool on every query",
|
||||
"name": "Getting Started: Simple python function applied to each output",
|
||||
"data": {
|
||||
"nodes": [
|
||||
{
|
||||
"width": 384,
|
||||
"height": 631,
|
||||
"id": "ChatOpenAI-tRw3A",
|
||||
"type": "genericNode",
|
||||
"position": {
|
||||
"x": 543.1816229116944,
|
||||
"y": 942.891611351432
|
||||
},
|
||||
"data": {
|
||||
"type": "ChatOpenAI",
|
||||
"node": {
|
||||
"template": {
|
||||
"lc_kwargs": {
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"show": false,
|
||||
"multiline": false,
|
||||
"password": false,
|
||||
"name": "lc_kwargs",
|
||||
"advanced": true,
|
||||
"type": "code",
|
||||
"list": false
|
||||
},
|
||||
"verbose": {
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"show": false,
|
||||
"multiline": false,
|
||||
"value": false,
|
||||
"password": false,
|
||||
"name": "verbose",
|
||||
"advanced": false,
|
||||
"type": "bool",
|
||||
"list": false
|
||||
},
|
||||
"callbacks": {
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"show": false,
|
||||
"multiline": false,
|
||||
"password": false,
|
||||
"name": "callbacks",
|
||||
"advanced": false,
|
||||
"type": "langchain.callbacks.base.BaseCallbackHandler",
|
||||
"list": true
|
||||
},
|
||||
"client": {
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"show": false,
|
||||
"multiline": false,
|
||||
"password": false,
|
||||
"name": "client",
|
||||
"advanced": false,
|
||||
"type": "Any",
|
||||
"list": false
|
||||
},
|
||||
"model_name": {
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"show": true,
|
||||
"multiline": false,
|
||||
"value": "gpt-3.5-turbo",
|
||||
"password": false,
|
||||
"options": [
|
||||
"gpt-3.5-turbo-0613",
|
||||
"gpt-3.5-turbo",
|
||||
"gpt-3.5-turbo-16k-0613",
|
||||
"gpt-3.5-turbo-16k",
|
||||
"gpt-4-0613",
|
||||
"gpt-4-32k-0613",
|
||||
"gpt-4",
|
||||
"gpt-4-32k"
|
||||
],
|
||||
"name": "model_name",
|
||||
"advanced": false,
|
||||
"type": "str",
|
||||
"list": true
|
||||
},
|
||||
"temperature": {
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"show": true,
|
||||
"multiline": false,
|
||||
"value": "0.2",
|
||||
"password": false,
|
||||
"name": "temperature",
|
||||
"advanced": false,
|
||||
"type": "float",
|
||||
"list": false
|
||||
},
|
||||
"model_kwargs": {
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"show": true,
|
||||
"multiline": false,
|
||||
"password": false,
|
||||
"name": "model_kwargs",
|
||||
"advanced": true,
|
||||
"type": "code",
|
||||
"list": false
|
||||
},
|
||||
"openai_api_key": {
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"show": true,
|
||||
"multiline": false,
|
||||
"value": "",
|
||||
"password": true,
|
||||
"name": "openai_api_key",
|
||||
"display_name": "OpenAI API Key",
|
||||
"advanced": false,
|
||||
"type": "str",
|
||||
"list": false
|
||||
},
|
||||
"openai_api_base": {
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"show": true,
|
||||
"multiline": false,
|
||||
"password": false,
|
||||
"name": "openai_api_base",
|
||||
"display_name": "OpenAI API Base",
|
||||
"advanced": false,
|
||||
"type": "str",
|
||||
"list": false
|
||||
},
|
||||
"openai_organization": {
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"show": false,
|
||||
"multiline": false,
|
||||
"password": false,
|
||||
"name": "openai_organization",
|
||||
"display_name": "OpenAI Organization",
|
||||
"advanced": false,
|
||||
"type": "str",
|
||||
"list": false
|
||||
},
|
||||
"openai_proxy": {
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"show": false,
|
||||
"multiline": false,
|
||||
"password": false,
|
||||
"name": "openai_proxy",
|
||||
"display_name": "OpenAI Proxy",
|
||||
"advanced": false,
|
||||
"type": "str",
|
||||
"list": false
|
||||
},
|
||||
"request_timeout": {
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"show": false,
|
||||
"multiline": false,
|
||||
"password": false,
|
||||
"name": "request_timeout",
|
||||
"advanced": false,
|
||||
"type": "float",
|
||||
"list": false
|
||||
},
|
||||
"max_retries": {
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"show": false,
|
||||
"multiline": false,
|
||||
"value": 6,
|
||||
"password": false,
|
||||
"name": "max_retries",
|
||||
"advanced": false,
|
||||
"type": "int",
|
||||
"list": false
|
||||
},
|
||||
"streaming": {
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"show": false,
|
||||
"multiline": false,
|
||||
"value": false,
|
||||
"password": false,
|
||||
"name": "streaming",
|
||||
"advanced": false,
|
||||
"type": "bool",
|
||||
"list": false
|
||||
},
|
||||
"n": {
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"show": false,
|
||||
"multiline": false,
|
||||
"value": 1,
|
||||
"password": false,
|
||||
"name": "n",
|
||||
"advanced": false,
|
||||
"type": "int",
|
||||
"list": false
|
||||
},
|
||||
"max_tokens": {
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"show": true,
|
||||
"multiline": false,
|
||||
"password": true,
|
||||
"name": "max_tokens",
|
||||
"advanced": false,
|
||||
"type": "int",
|
||||
"list": false
|
||||
},
|
||||
"_type": "ChatOpenAI"
|
||||
},
|
||||
"description": "Wrapper around OpenAI Chat large language models.",
|
||||
"base_classes": [
|
||||
"Serializable",
|
||||
"BaseChatModel",
|
||||
"ChatOpenAI",
|
||||
"BaseLanguageModel"
|
||||
],
|
||||
"display_name": "ChatOpenAI"
|
||||
},
|
||||
"id": "ChatOpenAI-tRw3A",
|
||||
"value": null
|
||||
},
|
||||
"selected": false,
|
||||
"dragging": false,
|
||||
"positionAbsolute": {
|
||||
"x": 543.1816229116944,
|
||||
"y": 942.891611351432
|
||||
}
|
||||
},
|
||||
{
|
||||
"width": 384,
|
||||
"height": 387,
|
||||
"id": "AgentInitializer-KcVTt",
|
||||
"type": "genericNode",
|
||||
"position": {
|
||||
"x": 1036.6064439140812,
|
||||
"y": 645.1919693466587
|
||||
},
|
||||
"data": {
|
||||
"type": "AgentInitializer",
|
||||
"node": {
|
||||
"template": {
|
||||
"agent": {
|
||||
"required": true,
|
||||
"placeholder": "",
|
||||
"show": true,
|
||||
"multiline": false,
|
||||
"value": "zero-shot-react-description",
|
||||
"password": false,
|
||||
"options": [
|
||||
"zero-shot-react-description",
|
||||
"react-docstore",
|
||||
"self-ask-with-search",
|
||||
"conversational-react-description",
|
||||
"openai-functions"
|
||||
],
|
||||
"name": "agent",
|
||||
"advanced": false,
|
||||
"type": "str",
|
||||
"list": true
|
||||
},
|
||||
"memory": {
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"show": true,
|
||||
"multiline": false,
|
||||
"password": false,
|
||||
"name": "memory",
|
||||
"advanced": false,
|
||||
"type": "BaseChatMemory",
|
||||
"list": false
|
||||
},
|
||||
"tools": {
|
||||
"required": false,
|
||||
"placeholder": "",
|
||||
"show": true,
|
||||
"multiline": false,
|
||||
"password": false,
|
||||
"name": "tools",
|
||||
"advanced": false,
|
||||
"type": "Tool",
|
||||
"list": true
|
||||
},
|
||||
"llm": {
|
||||
"required": true,
|
||||
"placeholder": "",
|
||||
"show": true,
|
||||
"multiline": false,
|
||||
"password": false,
|
||||
"name": "llm",
|
||||
"display_name": "LLM",
|
||||
"advanced": false,
|
||||
"type": "BaseLanguageModel",
|
||||
"list": false
|
||||
},
|
||||
"_type": "initialize_agent"
|
||||
},
|
||||
"description": "Construct a zero shot agent from an LLM and tools.",
|
||||
"base_classes": ["AgentExecutor", "function"],
|
||||
"display_name": "AgentInitializer"
|
||||
},
|
||||
"id": "AgentInitializer-KcVTt",
|
||||
"value": null
|
||||
},
|
||||
"selected": false,
|
||||
"positionAbsolute": {
|
||||
"x": 1036.6064439140812,
|
||||
"y": 645.1919693466587
|
||||
}
|
||||
},
|
||||
{
|
||||
"width": 384,
|
||||
"height": 437,
|
||||
"id": "PythonFunctionTool-FwZVF",
|
||||
"type": "genericNode",
|
||||
"position": {
|
||||
"x": 553.050119331742,
|
||||
"y": 412.9533535948685
|
||||
},
|
||||
"data": {
|
||||
"type": "PythonFunctionTool",
|
||||
"node": {
|
||||
"template": {
|
||||
"name": {
|
||||
"required": true,
|
||||
"placeholder": "",
|
||||
"show": true,
|
||||
"multiline": false,
|
||||
"value": "PythonFunction",
|
||||
"password": false,
|
||||
"name": "name",
|
||||
"advanced": false,
|
||||
"type": "str",
|
||||
"list": false
|
||||
},
|
||||
"description": {
|
||||
"required": true,
|
||||
"placeholder": "",
|
||||
"show": true,
|
||||
"multiline": true,
|
||||
"value": "Returns the Text you send. This is a testing tool.",
|
||||
"password": false,
|
||||
"name": "description",
|
||||
"advanced": false,
|
||||
"type": "str",
|
||||
"list": false
|
||||
},
|
||||
"code": {
|
||||
"required": true,
|
||||
"placeholder": "",
|
||||
"show": true,
|
||||
"multiline": true,
|
||||
"value": "\ndef python_function(text: str) -> str:\n \"\"\"This is a default python function that returns the input text\"\"\"\n return text\n",
|
||||
"password": false,
|
||||
"name": "code",
|
||||
"advanced": false,
|
||||
"type": "code",
|
||||
"list": false
|
||||
},
|
||||
"_type": "PythonFunctionTool"
|
||||
},
|
||||
"description": "Python function to be executed.",
|
||||
"base_classes": ["Tool"],
|
||||
"display_name": "PythonFunctionTool"
|
||||
},
|
||||
"id": "PythonFunctionTool-FwZVF",
|
||||
"value": null
|
||||
},
|
||||
"selected": false,
|
||||
"dragging": false,
|
||||
"positionAbsolute": {
|
||||
"x": 553.050119331742,
|
||||
"y": 412.9533535948685
|
||||
}
|
||||
}
|
||||
],
|
||||
"edges": [
|
||||
{
|
||||
"source": "ChatOpenAI-tRw3A",
|
||||
"sourceHandle": "ChatOpenAI|ChatOpenAI-tRw3A|Serializable|BaseChatModel|ChatOpenAI|BaseLanguageModel",
|
||||
"target": "AgentInitializer-KcVTt",
|
||||
"targetHandle": "BaseLanguageModel|llm|AgentInitializer-KcVTt",
|
||||
"style": {
|
||||
"stroke": "inherit"
|
||||
},
|
||||
"className": "stroke-gray-900 dark:stroke-gray-200",
|
||||
"animated": false,
|
||||
"id": "reactflow__edge-ChatOpenAI-tRw3AChatOpenAI|ChatOpenAI-tRw3A|Serializable|BaseChatModel|ChatOpenAI|BaseLanguageModel-AgentInitializer-KcVTtBaseLanguageModel|llm|AgentInitializer-KcVTt",
|
||||
"selected": false
|
||||
},
|
||||
{
|
||||
"source": "PythonFunctionTool-FwZVF",
|
||||
"sourceHandle": "PythonFunctionTool|PythonFunctionTool-FwZVF|Tool",
|
||||
"target": "AgentInitializer-KcVTt",
|
||||
"targetHandle": "Tool|tools|AgentInitializer-KcVTt",
|
||||
"style": {
|
||||
"stroke": "inherit"
|
||||
},
|
||||
"className": "stroke-gray-900 dark:stroke-gray-200",
|
||||
"animated": false,
|
||||
"id": "reactflow__edge-PythonFunctionTool-FwZVFPythonFunctionTool|PythonFunctionTool-FwZVF|Tool-AgentInitializer-KcVTtTool|tools|AgentInitializer-KcVTt",
|
||||
"selected": false
|
||||
}
|
||||
],
|
||||
"viewport": {
|
||||
"x": 4.748095479939138,
|
||||
"y": -155.65184647754464,
|
||||
"zoom": 0.6079953565987085
|
||||
}
|
||||
},
|
||||
"id": "15030b3c-570d-4658-8473-58138077e9b0"
|
||||
}
|
||||
196
src/frontend/tests/end-to-end/assets/flowtest.json
Normal file
196
src/frontend/tests/end-to-end/assets/flowtest.json
Normal file
|
|
@ -0,0 +1,196 @@
|
|||
{
|
||||
"name": "Lonely Stonebraker",
|
||||
"description": "Design Dialogues with Langflow.",
|
||||
"data": {
|
||||
"nodes": [
|
||||
{
|
||||
"width": 384,
|
||||
"height": 461,
|
||||
"id": "CustomComponent-MtJjl",
|
||||
"type": "genericNode",
|
||||
"position": { "x": 534.3712097224906, "y": -135.01908566635723 },
|
||||
"data": {
|
||||
"type": "CustomComponent",
|
||||
"node": {
|
||||
"template": {
|
||||
"code": {
|
||||
"type": "code",
|
||||
"required": true,
|
||||
"placeholder": "",
|
||||
"list": false,
|
||||
"show": true,
|
||||
"multiline": true,
|
||||
"value": "from langflow import CustomComponent\nfrom langflow.field_typing import Data\nfrom pathlib import Path\nfrom platformdirs import user_cache_dir\nimport os\n\nclass Component(CustomComponent):\n documentation: str = \"http://docs.langflow.org/components/custom\"\n\n def build_config(self):\n return {\"text_input\":{\"display_name\":\"Text Input\", \"input_types\":[\"str\"]},\"save_path\":{\"display_name\":\"Save Path\",\n \"info\":\"Put the full path with the file name and extension\",\"value\":Path(user_cache_dir(\"langflow\"))/\"text.t1.txt\"}}\n\n def build(self, text_input:str,save_path:str) -> str:\n try:\n # Create the directory if it doesn't exist\n os.makedirs(os.path.dirname(save_path), exist_ok=True)\n\n # Open the file in write mode and save the text\n with open(save_path, 'w') as file:\n file.write(text_input)\n except Exception as e:\n raise e\n self.status = text_input\n return text_input",
|
||||
"fileTypes": [],
|
||||
"file_path": "",
|
||||
"password": false,
|
||||
"name": "code",
|
||||
"advanced": false,
|
||||
"dynamic": true,
|
||||
"info": ""
|
||||
},
|
||||
"save_path": {
|
||||
"type": "str",
|
||||
"required": true,
|
||||
"placeholder": "",
|
||||
"list": false,
|
||||
"show": true,
|
||||
"multiline": false,
|
||||
"value": "/home/vazz/.cache/langflow/text.t1.txt",
|
||||
"fileTypes": [],
|
||||
"file_path": "",
|
||||
"password": false,
|
||||
"name": "save_path",
|
||||
"display_name": "Save Path",
|
||||
"advanced": false,
|
||||
"dynamic": false,
|
||||
"info": "Put the full path with the file name and extension"
|
||||
},
|
||||
"text_input": {
|
||||
"type": "str",
|
||||
"required": true,
|
||||
"placeholder": "",
|
||||
"list": false,
|
||||
"show": true,
|
||||
"multiline": false,
|
||||
"fileTypes": [],
|
||||
"file_path": "",
|
||||
"password": false,
|
||||
"name": "text_input",
|
||||
"display_name": "Text Input",
|
||||
"advanced": false,
|
||||
"input_types": ["str"],
|
||||
"dynamic": false,
|
||||
"info": "",
|
||||
"value": ""
|
||||
},
|
||||
"_type": "CustomComponent"
|
||||
},
|
||||
"base_classes": ["str"],
|
||||
"display_name": "text checkpoint",
|
||||
"documentation": "http://docs.langflow.org/components/custom",
|
||||
"custom_fields": { "save_path": null, "text_input": null },
|
||||
"output_types": ["str"],
|
||||
"field_formatters": {},
|
||||
"beta": true
|
||||
},
|
||||
"id": "CustomComponent-MtJjl"
|
||||
},
|
||||
"selected": false,
|
||||
"dragging": false,
|
||||
"positionAbsolute": { "x": 534.3712097224906, "y": -135.01908566635723 }
|
||||
},
|
||||
{
|
||||
"width": 384,
|
||||
"height": 453,
|
||||
"id": "CustomComponent-7NQoq",
|
||||
"type": "genericNode",
|
||||
"position": { "x": 27.487979888011637, "y": -414.43998171034826 },
|
||||
"data": {
|
||||
"type": "CustomComponent",
|
||||
"node": {
|
||||
"template": {
|
||||
"audio": {
|
||||
"type": "file",
|
||||
"required": true,
|
||||
"placeholder": "",
|
||||
"list": false,
|
||||
"show": true,
|
||||
"multiline": false,
|
||||
"fileTypes": [],
|
||||
"file_path": "/home/vazz/.cache/langflow/1b0814b7-2964-4e09-9b4b-f7413c4fb50b/b56b043d8940daecbdec03b97ad4346488c58d7cc62016560dd333aa7a6a12ce.m4a",
|
||||
"password": false,
|
||||
"name": "audio",
|
||||
"display_name": "audio",
|
||||
"advanced": false,
|
||||
"dynamic": false,
|
||||
"info": "",
|
||||
"value": "Audio Recording 2023-12-13 at 16.35.22.m4a"
|
||||
},
|
||||
"OpenAIKey": {
|
||||
"type": "str",
|
||||
"required": true,
|
||||
"placeholder": "",
|
||||
"list": false,
|
||||
"show": true,
|
||||
"multiline": false,
|
||||
"fileTypes": [],
|
||||
"file_path": "",
|
||||
"password": true,
|
||||
"name": "OpenAIKey",
|
||||
"display_name": "OpenAIKey",
|
||||
"advanced": false,
|
||||
"dynamic": false,
|
||||
"info": "",
|
||||
"value": ""
|
||||
},
|
||||
"code": {
|
||||
"type": "code",
|
||||
"required": true,
|
||||
"placeholder": "",
|
||||
"list": false,
|
||||
"show": true,
|
||||
"multiline": true,
|
||||
"value": "from langflow import CustomComponent\nfrom typing import Optional, List, Dict, Union\nfrom langflow.field_typing import (\n AgentExecutor,\n BaseChatMemory,\n BaseLanguageModel,\n BaseLLM,\n BaseLoader,\n BaseMemory,\n BaseOutputParser,\n BasePromptTemplate,\n BaseRetriever,\n Callable,\n Chain,\n ChatPromptTemplate,\n Data,\n Document,\n Embeddings,\n NestedDict,\n Object,\n PromptTemplate,\n TextSplitter,\n Tool,\n VectorStore,\n)\n\nfrom openai import OpenAI\nimport os\nimport ffmpeg\n\nclass Component(CustomComponent):\n display_name: str = \"Whisper Transcriber\"\n description: str = \"Converts audio to text using OpenAI's Whisper.\"\n\n def build_config(self):\n return {\"audio\": {\"field_type\": \"file\", \"suffixes\": [\".mp3\", \".mp4\", \".m4a\"]}, \"OpenAIKey\": {\"field_type\": \"str\", \"password\": True}}\n\n def calculate_segment_duration(self, audio_path, target_chunk_size_mb=24):\n # Calculate the target chunk size in bytes\n target_chunk_size_bytes = target_chunk_size_mb * 1024 * 1024\n\n # Use ffprobe to get the audio file information\n ffprobe_output = ffmpeg.probe(audio_path)\n print(ffprobe_output)\n # Convert duration to float\n duration = float(ffprobe_output[\"format\"][\"duration\"])\n\n # Calculate the approximate bitrate\n bitrate = os.path.getsize(audio_path) / duration\n\n # Calculate the segment duration to achieve the target chunk size\n segment_duration = target_chunk_size_bytes / bitrate\n\n return segment_duration\n\n def split_audio_into_chunks(self, audio_path, target_chunk_size_mb=24):\n # Calculate the segment duration\n segment_duration = self.calculate_segment_duration(audio_path, target_chunk_size_mb)\n\n # Create a directory to store the chunks\n output_directory = f\"{os.path.splitext(audio_path)[0]}_chunks\"\n os.makedirs(output_directory, exist_ok=True)\n\n # Use ffmpeg-python to split the audio file into chunks\n (\n ffmpeg.input(audio_path)\n .output(f\"{output_directory}/%03d{os.path.splitext(audio_path)[1]}\", codec=\"copy\", f=\"segment\", segment_time=segment_duration)\n .run()\n )\n\n # Get the list of generated chunk files\n chunks = [os.path.join(output_directory, file) for file in os.listdir(output_directory)]\n\n return chunks\n\n def build(self, audio: str, OpenAIKey: str) -> str:\n # Split audio into chunks\n audio_chunks = self.split_audio_into_chunks(audio)\n\n client = OpenAI(api_key=OpenAIKey)\n transcripts = []\n\n try:\n for chunk in audio_chunks:\n with open(chunk, \"rb\") as chunk_file:\n transcript = client.audio.transcriptions.create(\n model=\"whisper-1\",\n file=chunk_file,\n response_format=\"text\"\n )\n transcripts.append(transcript)\n finally:\n # Clean up temporary chunk files\n for chunk in audio_chunks:\n os.remove(chunk)\n\n # Concatenate transcripts into the final response\n final_response = \"\\n\".join(transcripts)\n self.status = final_response\n return final_response\n",
|
||||
"fileTypes": [],
|
||||
"file_path": "",
|
||||
"password": false,
|
||||
"name": "code",
|
||||
"advanced": false,
|
||||
"dynamic": true,
|
||||
"info": ""
|
||||
},
|
||||
"_type": "CustomComponent"
|
||||
},
|
||||
"description": "Converts audio to text using OpenAI's Whisper.",
|
||||
"base_classes": ["str"],
|
||||
"display_name": "Whisper Transcriber",
|
||||
"documentation": "",
|
||||
"custom_fields": { "OpenAIKey": null, "audio": null },
|
||||
"output_types": ["str"],
|
||||
"field_formatters": {},
|
||||
"beta": true
|
||||
},
|
||||
"id": "CustomComponent-7NQoq"
|
||||
},
|
||||
"selected": true,
|
||||
"positionAbsolute": {
|
||||
"x": 27.487979888011637,
|
||||
"y": -414.43998171034826
|
||||
},
|
||||
"dragging": false
|
||||
}
|
||||
],
|
||||
"edges": [
|
||||
{
|
||||
"source": "CustomComponent-7NQoq",
|
||||
"sourceHandle": "{œbaseClassesœ:[œstrœ],œdataTypeœ:œCustomComponentœ,œidœ:œCustomComponent-7NQoqœ}",
|
||||
"target": "CustomComponent-MtJjl",
|
||||
"targetHandle": "{œfieldNameœ:œtext_inputœ,œidœ:œCustomComponent-MtJjlœ,œinputTypesœ:[œstrœ],œtypeœ:œstrœ}",
|
||||
"data": {
|
||||
"targetHandle": {
|
||||
"fieldName": "text_input",
|
||||
"id": "CustomComponent-MtJjl",
|
||||
"inputTypes": ["str"],
|
||||
"type": "str"
|
||||
},
|
||||
"sourceHandle": {
|
||||
"baseClasses": ["str"],
|
||||
"dataType": "CustomComponent",
|
||||
"id": "CustomComponent-7NQoq"
|
||||
}
|
||||
},
|
||||
"style": { "stroke": "#555" },
|
||||
"className": "stroke-gray-900 stroke-connection",
|
||||
"animated": false,
|
||||
"id": "reactflow__edge-CustomComponent-7NQoq{œbaseClassesœ:[œstrœ],œdataTypeœ:œCustomComponentœ,œidœ:œCustomComponent-7NQoqœ}-CustomComponent-MtJjl{œfieldNameœ:œtext_inputœ,œidœ:œCustomComponent-MtJjlœ,œinputTypesœ:[œstrœ],œtypeœ:œstrœ}"
|
||||
}
|
||||
],
|
||||
"viewport": { "x": 119.37759169012509, "y": 351.3082742479685, "zoom": 1 }
|
||||
},
|
||||
"is_component": false,
|
||||
"updated_at": "2023-12-13T23:51:56.874099",
|
||||
"folder": null,
|
||||
"id": "1b0814b7-2964-4e09-9b4b-f7413c4fb50b",
|
||||
"user_id": "8b5cf798-f1b8-4108-88fd-d7274d08d471"
|
||||
}
|
||||
19
src/frontend/tests/end-to-end/auto_login.spec.ts
Normal file
19
src/frontend/tests/end-to-end/auto_login.spec.ts
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
import { test } from "@playwright/test";
|
||||
|
||||
test.describe("Auto_login tests", () => {
|
||||
test("auto_login sign in", async ({ page }) => {
|
||||
await page.goto("http:localhost:3000/");
|
||||
await page.locator('//*[@id="new-project-btn"]').click();
|
||||
});
|
||||
|
||||
test("auto_login block_admin", async ({ page }) => {
|
||||
await page.goto("http:localhost:3000/");
|
||||
await page.locator('//*[@id="new-project-btn"]').click();
|
||||
await page.goto("http:localhost:3000/login");
|
||||
await page.locator('//*[@id="new-project-btn"]').click();
|
||||
await page.goto("http:localhost:3000/admin");
|
||||
await page.locator('//*[@id="new-project-btn"]').click();
|
||||
await page.goto("http:localhost:3000/admin/login");
|
||||
await page.locator('//*[@id="new-project-btn"]').click();
|
||||
});
|
||||
});
|
||||
44
src/frontend/tests/end-to-end/dragAndDrop.spec.ts
Normal file
44
src/frontend/tests/end-to-end/dragAndDrop.spec.ts
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
import { expect, test } from "@playwright/test";
|
||||
import { readFileSync } from "fs";
|
||||
|
||||
test.describe("drag and drop test", () => {
|
||||
/// <reference lib="dom"/>
|
||||
test("drop collection", async ({ page }) => {
|
||||
await page.goto("http:localhost:3000/");
|
||||
await page.locator("span").filter({ hasText: "My Collection" }).isVisible();
|
||||
// Read your file into a buffer.
|
||||
const jsonContent = readFileSync(
|
||||
"tests/onlyFront/assets/collection.json",
|
||||
"utf-8"
|
||||
);
|
||||
|
||||
// Create the DataTransfer and File
|
||||
const dataTransfer = await page.evaluateHandle((data) => {
|
||||
const dt = new DataTransfer();
|
||||
// Convert the buffer to a hex array
|
||||
const file = new File([data], "flowtest.json", {
|
||||
type: "application/json",
|
||||
});
|
||||
dt.items.add(file);
|
||||
return dt;
|
||||
}, jsonContent);
|
||||
|
||||
// Now dispatch
|
||||
await page.dispatchEvent(
|
||||
'//*[@id="root"]/div/div[1]/div[2]/div[3]/div/div',
|
||||
"drop",
|
||||
{
|
||||
dataTransfer,
|
||||
}
|
||||
);
|
||||
|
||||
await page.getByText("Edit Flow").first().click();
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
const genericNoda = page.getByTestId("div-generic-node");
|
||||
const elementCount = await genericNoda.count();
|
||||
if (elementCount > 0) {
|
||||
expect(true).toBeTruthy();
|
||||
}
|
||||
});
|
||||
});
|
||||
96
src/frontend/tests/end-to-end/dropdownComponent.spec.ts
Normal file
96
src/frontend/tests/end-to-end/dropdownComponent.spec.ts
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
import { expect, test } from "@playwright/test";
|
||||
|
||||
test("dropDownComponent", async ({ page }) => {
|
||||
await page.goto("http://localhost:3000/");
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
await page.locator('//*[@id="new-project-btn"]').click();
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
await page.getByPlaceholder("Search").click();
|
||||
await page.getByPlaceholder("Search").fill("amazon");
|
||||
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
await page
|
||||
.getByTestId("model_specsAmazon Bedrock")
|
||||
.first()
|
||||
.dragTo(page.locator('//*[@id="react-flow-id"]'));
|
||||
await page.mouse.up();
|
||||
await page.mouse.down();
|
||||
|
||||
await page.getByTestId("dropdown-model_id-display").click();
|
||||
await page.getByTestId("ai21.j2-grande-instruct-0-option").click();
|
||||
|
||||
let value = await page.getByTestId("dropdown-model_id-display").innerText();
|
||||
if (value !== "ai21.j2-grande-instruct") {
|
||||
expect(false).toBeTruthy();
|
||||
}
|
||||
|
||||
await page.getByTestId("dropdown-model_id-display").click();
|
||||
await page.getByTestId("ai21.j2-jumbo-instruct-1-option").click();
|
||||
|
||||
value = await page.getByTestId("dropdown-model_id-display").innerText();
|
||||
if (value !== "ai21.j2-jumbo-instruct") {
|
||||
expect(false).toBeTruthy();
|
||||
}
|
||||
|
||||
await page.getByTestId("more-options-modal").click();
|
||||
await page.getByTestId("edit-button-modal").click();
|
||||
|
||||
value = await page.getByTestId("dropdown-edit-model_id-display").innerText();
|
||||
if (value !== "ai21.j2-jumbo-instruct") {
|
||||
expect(false).toBeTruthy();
|
||||
}
|
||||
|
||||
// showcode
|
||||
await page.locator('//*[@id="showcode"]').click();
|
||||
expect(await page.locator('//*[@id="showcode"]').isChecked()).toBeTruthy();
|
||||
|
||||
// showmodel_id
|
||||
await page.locator('//*[@id="showmodel_id"]').click();
|
||||
expect(await page.locator('//*[@id="showmodel_id"]').isChecked()).toBeFalsy();
|
||||
|
||||
// showcode
|
||||
await page.locator('//*[@id="showcode"]').click();
|
||||
expect(await page.locator('//*[@id="showcode"]').isChecked()).toBeFalsy();
|
||||
|
||||
// showmodel_id
|
||||
await page.locator('//*[@id="showmodel_id"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showmodel_id"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
// showcode
|
||||
await page.locator('//*[@id="showcode"]').click();
|
||||
expect(await page.locator('//*[@id="showcode"]').isChecked()).toBeTruthy();
|
||||
|
||||
// showmodel_id
|
||||
await page.locator('//*[@id="showmodel_id"]').click();
|
||||
expect(await page.locator('//*[@id="showmodel_id"]').isChecked()).toBeFalsy();
|
||||
|
||||
// showcode
|
||||
await page.locator('//*[@id="showcode"]').click();
|
||||
expect(await page.locator('//*[@id="showcode"]').isChecked()).toBeFalsy();
|
||||
|
||||
// showmodel_id
|
||||
await page.locator('//*[@id="showmodel_id"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showmodel_id"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
await page.getByTestId("dropdown-edit-model_id-display").click();
|
||||
await page.getByTestId("ai21.j2-ultra-v1-5-option").click();
|
||||
|
||||
value = await page.getByTestId("dropdown-edit-model_id-display").innerText();
|
||||
if (value !== "ai21.j2-ultra-v1") {
|
||||
expect(false).toBeTruthy();
|
||||
}
|
||||
|
||||
await page.locator('//*[@id="saveChangesBtn"]').click();
|
||||
|
||||
value = await page.getByTestId("dropdown-model_id-display").innerText();
|
||||
if (value !== "ai21.j2-ultra-v1") {
|
||||
expect(false).toBeTruthy();
|
||||
}
|
||||
});
|
||||
385
src/frontend/tests/end-to-end/floatComponent.spec.ts
Normal file
385
src/frontend/tests/end-to-end/floatComponent.spec.ts
Normal file
|
|
@ -0,0 +1,385 @@
|
|||
import { expect, test } from "@playwright/test";
|
||||
|
||||
test("FloatComponent", async ({ page }) => {
|
||||
await page.goto("http://localhost:3000/");
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
await page.locator('//*[@id="new-project-btn"]').click();
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
await page.getByPlaceholder("Search").click();
|
||||
await page.getByPlaceholder("Search").fill("llamacpp");
|
||||
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
await page
|
||||
.locator('//*[@id="model_specsLlamaCpp"]')
|
||||
.dragTo(page.locator('//*[@id="react-flow-id"]'));
|
||||
await page.mouse.up();
|
||||
await page.mouse.down();
|
||||
|
||||
await page.locator('//*[@id="float-input"]').click();
|
||||
await page.locator('//*[@id="float-input"]').fill("3");
|
||||
|
||||
let value = await page.locator('//*[@id="float-input"]').inputValue();
|
||||
|
||||
if (value != "1") {
|
||||
expect(false).toBeTruthy();
|
||||
}
|
||||
|
||||
await page.locator('//*[@id="float-input"]').click();
|
||||
await page.locator('//*[@id="float-input"]').fill("-3");
|
||||
|
||||
value = await page.locator('//*[@id="float-input"]').inputValue();
|
||||
|
||||
if (value != "-1") {
|
||||
expect(false).toBeTruthy();
|
||||
}
|
||||
|
||||
await page.getByTestId("more-options-modal").click();
|
||||
await page.getByTestId("edit-button-modal").click();
|
||||
|
||||
await page.locator('//*[@id="showcache"]').click();
|
||||
expect(await page.locator('//*[@id="showcache"]').isChecked()).toBeTruthy();
|
||||
|
||||
// showecho
|
||||
await page.locator('//*[@id="showecho"]').click();
|
||||
expect(await page.locator('//*[@id="showecho"]').isChecked()).toBeTruthy();
|
||||
|
||||
// showf16_kv
|
||||
await page.locator('//*[@id="showf16_kv"]').click();
|
||||
expect(await page.locator('//*[@id="showf16_kv"]').isChecked()).toBeTruthy();
|
||||
|
||||
// showgrammar_path
|
||||
await page.locator('//*[@id="showgrammar_path"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showgrammar_path"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
// showlast_n_tokens_size
|
||||
await page.locator('//*[@id="showlast_n_tokens_size"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showlast_n_tokens_size"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
// showlogits_all
|
||||
await page.locator('//*[@id="showlogits_all"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showlogits_all"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
// showlogprobs
|
||||
await page.locator('//*[@id="showlogprobs"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showlogprobs"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
// showlora_base
|
||||
await page.locator('//*[@id="showlora_base"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showlora_base"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
// showlora_path
|
||||
await page.locator('//*[@id="showlora_path"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showlora_path"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
// showmax_tokens
|
||||
await page.locator('//*[@id="showmax_tokens"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showmax_tokens"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
// showmodel_path
|
||||
await page.locator('//*[@id="showmodel_path"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showmodel_path"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
// shown_batch
|
||||
await page.locator('//*[@id="shown_batch"]').click();
|
||||
expect(await page.locator('//*[@id="shown_batch"]').isChecked()).toBeTruthy();
|
||||
|
||||
// shown_ctx
|
||||
await page.locator('//*[@id="shown_ctx"]').click();
|
||||
expect(await page.locator('//*[@id="shown_ctx"]').isChecked()).toBeTruthy();
|
||||
|
||||
// shown_gpu_layers
|
||||
await page.locator('//*[@id="shown_gpu_layers"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="shown_gpu_layers"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
// shown_parts
|
||||
await page.locator('//*[@id="shown_parts"]').click();
|
||||
expect(await page.locator('//*[@id="shown_parts"]').isChecked()).toBeTruthy();
|
||||
|
||||
// shown_threads
|
||||
await page.locator('//*[@id="shown_threads"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="shown_threads"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
// showrepeat_penalty
|
||||
await page.locator('//*[@id="showrepeat_penalty"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showrepeat_penalty"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
// showrope_freq_base
|
||||
await page.locator('//*[@id="showrope_freq_base"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showrope_freq_base"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
// showrope_freq_scale
|
||||
await page.locator('//*[@id="showrope_freq_scale"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showrope_freq_scale"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
// showseed
|
||||
await page.locator('//*[@id="showseed"]').click();
|
||||
expect(await page.locator('//*[@id="showseed"]').isChecked()).toBeTruthy();
|
||||
|
||||
// showstop
|
||||
await page.locator('//*[@id="showstop"]').click();
|
||||
expect(await page.locator('//*[@id="showstop"]').isChecked()).toBeTruthy();
|
||||
|
||||
// showstreaming
|
||||
await page.locator('//*[@id="showstreaming"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showstreaming"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
// showsuffix
|
||||
await page.locator('//*[@id="showsuffix"]').click();
|
||||
expect(await page.locator('//*[@id="showsuffix"]').isChecked()).toBeTruthy();
|
||||
|
||||
// showtags
|
||||
await page.locator('//*[@id="showtags"]').click();
|
||||
expect(await page.locator('//*[@id="showtags"]').isChecked()).toBeTruthy();
|
||||
|
||||
// showtemperature
|
||||
await page.locator('//*[@id="showtemperature"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showtemperature"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
// showtop_k
|
||||
await page.locator('//*[@id="showtop_k"]').click();
|
||||
expect(await page.locator('//*[@id="showtop_k"]').isChecked()).toBeTruthy();
|
||||
|
||||
// showtop_p
|
||||
await page.locator('//*[@id="showtop_p"]').click();
|
||||
expect(await page.locator('//*[@id="showtop_p"]').isChecked()).toBeTruthy();
|
||||
|
||||
// showuse_mlock
|
||||
await page.locator('//*[@id="showuse_mlock"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showuse_mlock"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
// showuse_mmap
|
||||
await page.locator('//*[@id="showuse_mmap"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showuse_mmap"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
// showverbose
|
||||
await page.locator('//*[@id="showverbose"]').click();
|
||||
expect(await page.locator('//*[@id="showverbose"]').isChecked()).toBeTruthy();
|
||||
|
||||
// showvocab_only
|
||||
await page.locator('//*[@id="showvocab_only"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showvocab_only"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
await page.locator('//*[@id="showcache"]').click();
|
||||
expect(await page.locator('//*[@id="showcache"]').isChecked()).toBeFalsy();
|
||||
|
||||
// showecho
|
||||
await page.locator('//*[@id="showecho"]').click();
|
||||
expect(await page.locator('//*[@id="showecho"]').isChecked()).toBeFalsy();
|
||||
|
||||
// showf16_kv
|
||||
await page.locator('//*[@id="showf16_kv"]').click();
|
||||
expect(await page.locator('//*[@id="showf16_kv"]').isChecked()).toBeFalsy();
|
||||
|
||||
// showgrammar_path
|
||||
await page.locator('//*[@id="showgrammar_path"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showgrammar_path"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
// showlast_n_tokens_size
|
||||
await page.locator('//*[@id="showlast_n_tokens_size"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showlast_n_tokens_size"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
// showlogits_all
|
||||
await page.locator('//*[@id="showlogits_all"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showlogits_all"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
// showlogprobs
|
||||
await page.locator('//*[@id="showlogprobs"]').click();
|
||||
expect(await page.locator('//*[@id="showlogprobs"]').isChecked()).toBeFalsy();
|
||||
|
||||
// showlora_base
|
||||
await page.locator('//*[@id="showlora_base"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showlora_base"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
// showlora_path
|
||||
await page.locator('//*[@id="showlora_path"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showlora_path"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
// showmax_tokens
|
||||
await page.locator('//*[@id="showmax_tokens"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showmax_tokens"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
// showmodel_path
|
||||
await page.locator('//*[@id="showmodel_path"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showmodel_path"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
// shown_batch
|
||||
await page.locator('//*[@id="shown_batch"]').click();
|
||||
expect(await page.locator('//*[@id="shown_batch"]').isChecked()).toBeFalsy();
|
||||
|
||||
// shown_ctx
|
||||
await page.locator('//*[@id="shown_ctx"]').click();
|
||||
expect(await page.locator('//*[@id="shown_ctx"]').isChecked()).toBeFalsy();
|
||||
|
||||
// shown_gpu_layers
|
||||
await page.locator('//*[@id="shown_gpu_layers"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="shown_gpu_layers"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
// shown_parts
|
||||
await page.locator('//*[@id="shown_parts"]').click();
|
||||
expect(await page.locator('//*[@id="shown_parts"]').isChecked()).toBeFalsy();
|
||||
|
||||
// shown_threads
|
||||
await page.locator('//*[@id="shown_threads"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="shown_threads"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
// showrepeat_penalty
|
||||
await page.locator('//*[@id="showrepeat_penalty"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showrepeat_penalty"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
// showrope_freq_base
|
||||
await page.locator('//*[@id="showrope_freq_base"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showrope_freq_base"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
// showrope_freq_scale
|
||||
await page.locator('//*[@id="showrope_freq_scale"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showrope_freq_scale"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
// showseed
|
||||
await page.locator('//*[@id="showseed"]').click();
|
||||
expect(await page.locator('//*[@id="showseed"]').isChecked()).toBeFalsy();
|
||||
|
||||
// showstop
|
||||
await page.locator('//*[@id="showstop"]').click();
|
||||
expect(await page.locator('//*[@id="showstop"]').isChecked()).toBeFalsy();
|
||||
|
||||
// showstreaming
|
||||
await page.locator('//*[@id="showstreaming"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showstreaming"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
// showsuffix
|
||||
await page.locator('//*[@id="showsuffix"]').click();
|
||||
expect(await page.locator('//*[@id="showsuffix"]').isChecked()).toBeFalsy();
|
||||
|
||||
// showtags
|
||||
await page.locator('//*[@id="showtags"]').click();
|
||||
expect(await page.locator('//*[@id="showtags"]').isChecked()).toBeFalsy();
|
||||
|
||||
// showtop_k
|
||||
await page.locator('//*[@id="showtop_k"]').click();
|
||||
expect(await page.locator('//*[@id="showtop_k"]').isChecked()).toBeFalsy();
|
||||
|
||||
// showtop_p
|
||||
await page.locator('//*[@id="showtop_p"]').click();
|
||||
expect(await page.locator('//*[@id="showtop_p"]').isChecked()).toBeFalsy();
|
||||
|
||||
// showuse_mlock
|
||||
await page.locator('//*[@id="showuse_mlock"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showuse_mlock"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
// showuse_mmap
|
||||
await page.locator('//*[@id="showuse_mmap"]').click();
|
||||
expect(await page.locator('//*[@id="showuse_mmap"]').isChecked()).toBeFalsy();
|
||||
|
||||
// showverbose
|
||||
await page.locator('//*[@id="showverbose"]').click();
|
||||
expect(await page.locator('//*[@id="showverbose"]').isChecked()).toBeFalsy();
|
||||
|
||||
// showvocab_only
|
||||
await page.locator('//*[@id="showvocab_only"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showvocab_only"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
await page.locator('//*[@id="saveChangesBtn"]').click();
|
||||
|
||||
const plusButtonLocator = page.locator('//*[@id="float-input"]');
|
||||
const elementCount = await plusButtonLocator.count();
|
||||
if (elementCount === 0) {
|
||||
expect(true).toBeTruthy();
|
||||
|
||||
await page.getByTestId("more-options-modal").click();
|
||||
await page.getByTestId("edit-button-modal").click();
|
||||
|
||||
// showtemperature
|
||||
await page.locator('//*[@id="showtemperature"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showtemperature"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
await page.locator('//*[@id="saveChangesBtn"]').click();
|
||||
await page.locator('//*[@id="float-input"]').click();
|
||||
await page.locator('//*[@id="float-input"]').fill("3");
|
||||
|
||||
let value = await page.locator('//*[@id="float-input"]').inputValue();
|
||||
|
||||
if (value != "1") {
|
||||
expect(false).toBeTruthy();
|
||||
}
|
||||
|
||||
await page.locator('//*[@id="float-input"]').click();
|
||||
await page.locator('//*[@id="float-input"]').fill("-3");
|
||||
|
||||
value = await page.locator('//*[@id="float-input"]').inputValue();
|
||||
|
||||
if (value != "-1") {
|
||||
expect(false).toBeTruthy();
|
||||
}
|
||||
}
|
||||
});
|
||||
30
src/frontend/tests/end-to-end/flowPage.spec.ts
Normal file
30
src/frontend/tests/end-to-end/flowPage.spec.ts
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
import { Page, test } from "@playwright/test";
|
||||
|
||||
test.describe("Flow Page tests", () => {
|
||||
async function goToFlowPage(page: Page) {
|
||||
await page.goto("http://localhost:3000/");
|
||||
await page.getByRole("button", { name: "New Project" }).click();
|
||||
}
|
||||
|
||||
test("save", async ({ page }) => {
|
||||
await page.goto("http://localhost:3000/");
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
await page.locator('//*[@id="new-project-btn"]').click();
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
await page.getByPlaceholder("Search").click();
|
||||
await page.getByPlaceholder("Search").fill("custom");
|
||||
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
await page
|
||||
.locator('//*[@id="custom_componentsCustomComponent"]')
|
||||
.dragTo(page.locator('//*[@id="react-flow-id"]'));
|
||||
await page.mouse.up();
|
||||
await page.mouse.down();
|
||||
|
||||
// await page.getByTestId("icon-ExternalLink").click();
|
||||
// await page.locator('//*[@id="checkAndSaveBtn"]').click();
|
||||
});
|
||||
});
|
||||
74
src/frontend/tests/end-to-end/group.spec.ts
Normal file
74
src/frontend/tests/end-to-end/group.spec.ts
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
import { expect, test } from "@playwright/test";
|
||||
import { readFileSync } from "fs";
|
||||
|
||||
test.describe("group node test", () => {
|
||||
/// <reference lib="dom"/>
|
||||
test("group and ungroup updating values", async ({ page }) => {
|
||||
await page.goto("http:localhost:3000/");
|
||||
await page.locator("span").filter({ hasText: "My Collection" }).isVisible();
|
||||
// Read your file into a buffer.
|
||||
const jsonContent = readFileSync(
|
||||
"tests/onlyFront/assets/collection.json",
|
||||
"utf-8"
|
||||
);
|
||||
|
||||
// Create the DataTransfer and File
|
||||
const dataTransfer = await page.evaluateHandle((data) => {
|
||||
const dt = new DataTransfer();
|
||||
// Convert the buffer to a hex array
|
||||
const file = new File([data], "flowtest.json", {
|
||||
type: "application/json",
|
||||
});
|
||||
dt.items.add(file);
|
||||
return dt;
|
||||
}, jsonContent);
|
||||
|
||||
page.waitForTimeout(2000);
|
||||
|
||||
await page.dispatchEvent(
|
||||
'//*[@id="root"]/div/div[1]/div[2]/div[3]/div/div',
|
||||
"drop",
|
||||
{
|
||||
dataTransfer,
|
||||
}
|
||||
);
|
||||
|
||||
await page
|
||||
.getByTestId("edit-flow-button-e9ac1bdc-429b-475d-ac03-d26f9a2a3210-0")
|
||||
.click();
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
const genericNoda = page.getByTestId("div-generic-node");
|
||||
const elementCount = await genericNoda.count();
|
||||
if (elementCount > 0) {
|
||||
expect(true).toBeTruthy();
|
||||
}
|
||||
|
||||
await page.getByTestId("title-PythonFunctionTool").click({
|
||||
modifiers: ["Control"],
|
||||
});
|
||||
await page.getByTestId("title-ChatOpenAI").click({
|
||||
modifiers: ["Control"],
|
||||
});
|
||||
|
||||
await page.getByTestId("title-AgentInitializer").click({
|
||||
modifiers: ["Control"],
|
||||
});
|
||||
|
||||
await page.getByRole("button", { name: "Group" }).click();
|
||||
|
||||
const textArea = page.getByTestId("div-textarea-description");
|
||||
const elementCountText = await textArea.count();
|
||||
if (elementCountText > 0) {
|
||||
expect(true).toBeTruthy();
|
||||
}
|
||||
|
||||
const groupNode = page.getByTestId("title-Group");
|
||||
const elementGroup = await groupNode.count();
|
||||
if (elementGroup > 0) {
|
||||
expect(true).toBeTruthy();
|
||||
}
|
||||
|
||||
// Now dispatch
|
||||
});
|
||||
});
|
||||
144
src/frontend/tests/end-to-end/inputComponent.spec.ts
Normal file
144
src/frontend/tests/end-to-end/inputComponent.spec.ts
Normal file
|
|
@ -0,0 +1,144 @@
|
|||
import { expect, test } from "@playwright/test";
|
||||
|
||||
test("InputComponent", async ({ page }) => {
|
||||
await page.goto("http://localhost:3000/");
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
await page.locator('//*[@id="new-project-btn"]').click();
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
await page.getByPlaceholder("Search").click();
|
||||
await page.getByPlaceholder("Search").fill("Chroma");
|
||||
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
await page
|
||||
.getByTestId("vectorstoresChroma")
|
||||
.dragTo(page.locator('//*[@id="react-flow-id"]'));
|
||||
await page.mouse.up();
|
||||
await page.mouse.down();
|
||||
|
||||
await page.getByTestId("input-collection_name").click();
|
||||
await page
|
||||
.getByTestId("input-collection_name")
|
||||
.fill("collection_name_test_123123123!@#$&*(&%$@");
|
||||
|
||||
let value = await page.getByTestId("input-collection_name").inputValue();
|
||||
|
||||
if (value != "collection_name_test_123123123!@#$&*(&%$@") {
|
||||
expect(false).toBeTruthy();
|
||||
}
|
||||
|
||||
await page.getByTestId("div-generic-node").click();
|
||||
|
||||
await page.getByTestId("more-options-modal").click();
|
||||
await page.getByTestId("edit-button-modal").click();
|
||||
|
||||
await page.locator('//*[@id="showchroma_server_cors_allow_origins"]').click();
|
||||
expect(
|
||||
await page
|
||||
.locator('//*[@id="showchroma_server_cors_allow_origins"]')
|
||||
.isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
await page.locator('//*[@id="showchroma_server_grpc_port"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showchroma_server_grpc_port"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
await page.locator('//*[@id="showchroma_server_host"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showchroma_server_host"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
await page.locator('//*[@id="showchroma_server_port"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showchroma_server_port"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
await page.locator('//*[@id="showchroma_server_ssl_enabled"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showchroma_server_ssl_enabled"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
await page.locator('//*[@id="showcollection_name"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showcollection_name"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
await page.locator('//*[@id="showindex_directory"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showindex_directory"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
await page.locator('//*[@id="showchroma_server_cors_allow_origins"]').click();
|
||||
expect(
|
||||
await page
|
||||
.locator('//*[@id="showchroma_server_cors_allow_origins"]')
|
||||
.isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
await page.locator('//*[@id="showchroma_server_grpc_port"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showchroma_server_grpc_port"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
await page.locator('//*[@id="showchroma_server_host"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showchroma_server_host"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
await page.locator('//*[@id="showchroma_server_port"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showchroma_server_port"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
await page.locator('//*[@id="showchroma_server_ssl_enabled"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showchroma_server_ssl_enabled"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
await page.locator('//*[@id="showindex_directory"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showindex_directory"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
let valueEditNode = await page
|
||||
.getByTestId("input-collection_name-edit")
|
||||
.inputValue();
|
||||
|
||||
if (valueEditNode != "collection_name_test_123123123!@#$&*(&%$@") {
|
||||
expect(false).toBeTruthy();
|
||||
}
|
||||
|
||||
await page.getByTestId("input-collection_name-edit").click();
|
||||
await page
|
||||
.getByTestId("input-collection_name-edit")
|
||||
.fill("NEW_collection_name_test_123123123!@#$&*(&%$@");
|
||||
|
||||
await page.locator('//*[@id="saveChangesBtn"]').click();
|
||||
|
||||
const plusButtonLocator = page.getByTestId("input-collection_name");
|
||||
const elementCount = await plusButtonLocator.count();
|
||||
if (elementCount === 0) {
|
||||
expect(true).toBeTruthy();
|
||||
|
||||
await page.getByTestId("div-generic-node").click();
|
||||
|
||||
await page.getByTestId("more-options-modal").click();
|
||||
await page.getByTestId("edit-button-modal").click();
|
||||
|
||||
await page.locator('//*[@id="showcollection_name"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showcollection_name"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
await page.locator('//*[@id="saveChangesBtn"]').click();
|
||||
|
||||
let value = await page.getByTestId("input-collection_name").inputValue();
|
||||
|
||||
if (value != "NEW_collection_name_test_123123123!@#$&*(&%$@") {
|
||||
expect(false).toBeTruthy();
|
||||
}
|
||||
}
|
||||
});
|
||||
113
src/frontend/tests/end-to-end/intComponent.spec.ts
Normal file
113
src/frontend/tests/end-to-end/intComponent.spec.ts
Normal file
|
|
@ -0,0 +1,113 @@
|
|||
import { expect, test } from "@playwright/test";
|
||||
|
||||
test("IntComponent", async ({ page }) => {
|
||||
await page.goto("http://localhost:3000/");
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
await page.locator('//*[@id="new-project-btn"]').click();
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
await page.getByPlaceholder("Search").click();
|
||||
await page.getByPlaceholder("Search").fill("getrequest");
|
||||
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
await page
|
||||
.getByTestId("utilitiesGET Request")
|
||||
.first()
|
||||
.dragTo(page.locator('//*[@id="react-flow-id"]'));
|
||||
await page.mouse.up();
|
||||
await page.mouse.down();
|
||||
|
||||
await page.getByTestId("int-input-timeout").click();
|
||||
await page
|
||||
.getByTestId("int-input-timeout")
|
||||
.fill("123456789123456789123456789");
|
||||
|
||||
let value = await page.getByTestId("int-input-timeout").inputValue();
|
||||
|
||||
if (value != "123456789123456789123456789") {
|
||||
expect(false).toBeTruthy();
|
||||
}
|
||||
|
||||
await page.getByTestId("int-input-timeout").click();
|
||||
await page.getByTestId("int-input-timeout").fill("0");
|
||||
|
||||
value = await page.getByTestId("int-input-timeout").inputValue();
|
||||
|
||||
if (value != "0") {
|
||||
expect(false).toBeTruthy();
|
||||
}
|
||||
|
||||
await page.getByTestId("more-options-modal").click();
|
||||
await page.getByTestId("edit-button-modal").click();
|
||||
|
||||
value = await page.getByTestId("edit-int-input-timeout").inputValue();
|
||||
|
||||
if (value != "0") {
|
||||
expect(false).toBeTruthy();
|
||||
}
|
||||
|
||||
await page.getByTestId("edit-int-input-timeout").click();
|
||||
await page
|
||||
.getByTestId("edit-int-input-timeout")
|
||||
.fill("123456789123456789123456789");
|
||||
|
||||
await page.locator('//*[@id="showheaders"]').click();
|
||||
expect(await page.locator('//*[@id="showheaders"]').isChecked()).toBeFalsy();
|
||||
|
||||
await page.locator('//*[@id="showtimeout"]').click();
|
||||
expect(await page.locator('//*[@id="showtimeout"]').isChecked()).toBeFalsy();
|
||||
|
||||
await page.locator('//*[@id="showurl"]').click();
|
||||
expect(await page.locator('//*[@id="showurl"]').isChecked()).toBeFalsy();
|
||||
|
||||
await page.locator('//*[@id="showheaders"]').click();
|
||||
expect(await page.locator('//*[@id="showheaders"]').isChecked()).toBeTruthy();
|
||||
|
||||
await page.locator('//*[@id="showurl"]').click();
|
||||
expect(await page.locator('//*[@id="showurl"]').isChecked()).toBeTruthy();
|
||||
|
||||
await page.locator('//*[@id="saveChangesBtn"]').click();
|
||||
|
||||
const plusButtonLocator = page.getByTestId("int-input-timeout");
|
||||
const elementCount = await plusButtonLocator.count();
|
||||
if (elementCount === 0) {
|
||||
expect(true).toBeTruthy();
|
||||
|
||||
await page.getByTestId("more-options-modal").click();
|
||||
await page.getByTestId("edit-button-modal").click();
|
||||
|
||||
await page.locator('//*[@id="showtimeout"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showtimeout"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
const valueEditNode = await page
|
||||
.getByTestId("edit-int-input-timeout")
|
||||
.inputValue();
|
||||
|
||||
if (valueEditNode != "123456789123456789123456789") {
|
||||
expect(false).toBeTruthy();
|
||||
}
|
||||
|
||||
await page.locator('//*[@id="saveChangesBtn"]').click();
|
||||
await page.getByTestId("int-input-timeout").click();
|
||||
await page.getByTestId("int-input-timeout").fill("3");
|
||||
|
||||
let value = await page.getByTestId("int-input-timeout").inputValue();
|
||||
|
||||
if (value != "3") {
|
||||
expect(false).toBeTruthy();
|
||||
}
|
||||
|
||||
await page.getByTestId("int-input-timeout").click();
|
||||
await page.getByTestId("int-input-timeout").fill("-3");
|
||||
|
||||
value = await page.getByTestId("int-input-timeout").inputValue();
|
||||
|
||||
if (value != "0") {
|
||||
expect(false).toBeTruthy();
|
||||
}
|
||||
}
|
||||
});
|
||||
164
src/frontend/tests/end-to-end/keyPairListComponent.spec.ts
Normal file
164
src/frontend/tests/end-to-end/keyPairListComponent.spec.ts
Normal file
|
|
@ -0,0 +1,164 @@
|
|||
import { expect, test } from "@playwright/test";
|
||||
|
||||
test("KeypairListComponent", async ({ page }) => {
|
||||
await page.goto("http://localhost:3000/");
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
await page.locator('//*[@id="new-project-btn"]').click();
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
await page.getByPlaceholder("Search").click();
|
||||
await page.getByPlaceholder("Search").fill("csv");
|
||||
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
await page
|
||||
.getByTestId("documentloadersCSVLoader")
|
||||
.dragTo(page.locator('//*[@id="react-flow-id"]'));
|
||||
await page.mouse.up();
|
||||
await page.mouse.down();
|
||||
|
||||
await page.locator('//*[@id="keypair0"]').click();
|
||||
await page.locator('//*[@id="keypair0"]').fill("testtesttesttest");
|
||||
await page.locator('//*[@id="keypair100"]').click();
|
||||
await page
|
||||
.locator('//*[@id="keypair100"]')
|
||||
.fill("test test test test test test");
|
||||
|
||||
await page.getByTestId("div-generic-node").click();
|
||||
|
||||
const valueWithSpace = await page.getByTestId("keypair100").inputValue();
|
||||
await page.getByTestId("div-generic-node").click();
|
||||
|
||||
if (valueWithSpace !== "test test test test test test") {
|
||||
expect(false).toBeTruthy();
|
||||
}
|
||||
|
||||
const plusButtonLocatorNode = page.locator('//*[@id="plusbtn0"]');
|
||||
const elementCountNode = await plusButtonLocatorNode.count();
|
||||
if (elementCountNode > 0) {
|
||||
await plusButtonLocatorNode.click();
|
||||
}
|
||||
await page.getByTestId("div-generic-node").click();
|
||||
|
||||
await page.locator('//*[@id="keypair1"]').click();
|
||||
await page.locator('//*[@id="keypair1"]').fill("testtesttesttest1");
|
||||
await page.getByTestId("div-generic-node").click();
|
||||
|
||||
await page.locator('//*[@id="keypair101"]').click();
|
||||
await page.locator('//*[@id="keypair101"]').fill("testtesttesttesttesttest1");
|
||||
await page.getByTestId("div-generic-node").click();
|
||||
|
||||
await page.locator('//*[@id="plusbtn1"]').click();
|
||||
await page.getByTestId("div-generic-node").click();
|
||||
|
||||
await page.locator('//*[@id="keypair2"]').click();
|
||||
await page.locator('//*[@id="keypair2"]').fill("testtesttesttest2");
|
||||
await page.getByTestId("div-generic-node").click();
|
||||
|
||||
await page.locator('//*[@id="keypair102"]').click();
|
||||
await page.locator('//*[@id="keypair102"]').fill("testtesttesttesttesttest2");
|
||||
await page.getByTestId("div-generic-node").click();
|
||||
|
||||
await page.locator('//*[@id="minusbtn1"]').click();
|
||||
await page.getByTestId("div-generic-node").click();
|
||||
|
||||
const keyPairVerification = page.locator('//*[@id="keypair102"]');
|
||||
const elementKeyCount = await keyPairVerification.count();
|
||||
|
||||
if (elementKeyCount === 0) {
|
||||
expect(true).toBeTruthy();
|
||||
} else {
|
||||
expect(false).toBeTruthy();
|
||||
}
|
||||
|
||||
await page.getByTestId("more-options-modal").click();
|
||||
await page.getByTestId("edit-button-modal").click();
|
||||
|
||||
await page.locator('//*[@id="showfile_path"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showfile_path"]').isChecked()
|
||||
).toBeFalsy();
|
||||
await page.locator('//*[@id="showmetadata"]').click();
|
||||
expect(await page.locator('//*[@id="showmetadata"]').isChecked()).toBeFalsy();
|
||||
await page.locator('//*[@id="saveChangesBtn"]').click();
|
||||
|
||||
const plusButtonLocator = page.locator('//*[@id="plusbtn0"]');
|
||||
const elementCount = await plusButtonLocator.count();
|
||||
if (elementCount === 0) {
|
||||
expect(true).toBeTruthy();
|
||||
await page.getByTestId("div-generic-node").click();
|
||||
|
||||
await page.getByTestId("more-options-modal").click();
|
||||
await page.getByTestId("edit-button-modal").click();
|
||||
|
||||
await page.locator('//*[@id="showfile_path"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showfile_path"]').isChecked()
|
||||
).toBeTruthy();
|
||||
await page.locator('//*[@id="showmetadata"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showmetadata"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
await page.locator('//*[@id="editNodekeypair0"]').click();
|
||||
await page.locator('//*[@id="editNodekeypair0"]').fill("testtesttesttest");
|
||||
await page.locator('//*[@id="editNodekeypair100"]').click();
|
||||
await page
|
||||
.locator('//*[@id="editNodekeypair100"]')
|
||||
.fill("test test test test test test");
|
||||
|
||||
const plusButtonLocator = page.locator('//*[@id="plusbtn0"]');
|
||||
const elementCount = await plusButtonLocator.count();
|
||||
if (elementCount > 0) {
|
||||
await plusButtonLocator.click();
|
||||
}
|
||||
|
||||
await page.locator('//*[@id="editNodekeypair1"]').click();
|
||||
await page.locator('//*[@id="editNodekeypair1"]').fill("testtesttesttest1");
|
||||
await page.locator('//*[@id="editNodekeypair101"]').first().click();
|
||||
await page
|
||||
.locator('//*[@id="editNodekeypair101"]')
|
||||
.fill("testtesttesttesttesttest1");
|
||||
await page.locator('//*[@id="editNodeplusbtn1"]').click();
|
||||
|
||||
await page.locator('//*[@id="editNodekeypair2"]').click();
|
||||
await page.locator('//*[@id="editNodekeypair2"]').fill("testtesttesttest2");
|
||||
await page.locator('//*[@id="editNodekeypair102"]').click();
|
||||
await page
|
||||
.locator('//*[@id="editNodekeypair102"]')
|
||||
.fill("testtesttesttesttesttest2");
|
||||
|
||||
await page.locator('//*[@id="editNodeminusbtn1"]').click();
|
||||
|
||||
const keyPairVerification = page.locator('//*[@id="editNodekeypair102"]');
|
||||
const elementKeyCount = await keyPairVerification.count();
|
||||
|
||||
if (elementKeyCount === 0) {
|
||||
await page.locator('//*[@id="saveChangesBtn"]').click();
|
||||
|
||||
await page.getByTestId("div-generic-node").click();
|
||||
|
||||
const key1 = await page.locator('//*[@id="keypair0"]').inputValue();
|
||||
const value1 = await page.locator('//*[@id="keypair100"]').inputValue();
|
||||
const key2 = await page.locator('//*[@id="keypair1"]').inputValue();
|
||||
const value2 = await page.locator('//*[@id="keypair101"]').inputValue();
|
||||
await page.getByTestId("div-generic-node").click();
|
||||
|
||||
if (
|
||||
key1 === "testtesttesttest" &&
|
||||
value1 === "test test test test test test" &&
|
||||
key2 === "testtesttesttest2" &&
|
||||
value2 === "testtesttesttesttesttest2"
|
||||
) {
|
||||
expect(true).toBeTruthy();
|
||||
} else {
|
||||
expect(false).toBeTruthy();
|
||||
}
|
||||
} else {
|
||||
expect(false).toBeTruthy();
|
||||
}
|
||||
} else {
|
||||
expect(false).toBeTruthy();
|
||||
}
|
||||
});
|
||||
219
src/frontend/tests/end-to-end/nestedComponent.spec.ts
Normal file
219
src/frontend/tests/end-to-end/nestedComponent.spec.ts
Normal file
|
|
@ -0,0 +1,219 @@
|
|||
import { expect, test } from "@playwright/test";
|
||||
|
||||
test("NestedComponent", async ({ page }) => {
|
||||
await page.goto("http://localhost:3000/");
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
await page.locator('//*[@id="new-project-btn"]').click();
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
await page.getByPlaceholder("Search").click();
|
||||
await page.getByPlaceholder("Search").fill("pinecone");
|
||||
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
await page
|
||||
.getByTestId("vectorstoresPinecone")
|
||||
.first()
|
||||
.dragTo(page.locator('//*[@id="react-flow-id"]'));
|
||||
await page.click('//*[@id="react-flow-id"]');
|
||||
|
||||
await page.getByTestId("more-options-modal").click();
|
||||
await page.getByTestId("edit-button-modal").click();
|
||||
|
||||
//showpool_threads
|
||||
await page.locator('//*[@id="showpool_threads"]').click();
|
||||
|
||||
expect(
|
||||
await page.locator('//*[@id="showpool_threads"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
//showtext_key
|
||||
await page.locator('//*[@id="showtext_key"]').click();
|
||||
|
||||
expect(await page.locator('//*[@id="showtext_key"]').isChecked()).toBeFalsy();
|
||||
|
||||
// showindex_name
|
||||
await page.locator('//*[@id="showindex_name"]').click();
|
||||
|
||||
expect(
|
||||
await page.locator('//*[@id="showindex_name"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
// shownamespace
|
||||
await page.locator('//*[@id="shownamespace"]').click();
|
||||
|
||||
expect(
|
||||
await page.locator('//*[@id="shownamespace"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
// showpinecone_api_key
|
||||
await page.locator('//*[@id="showpinecone_api_key"]').click();
|
||||
|
||||
expect(
|
||||
await page.locator('//*[@id="showpinecone_api_key"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
// showpinecone_env
|
||||
await page.locator('//*[@id="showpinecone_env"]').click();
|
||||
|
||||
expect(
|
||||
await page.locator('//*[@id="showpinecone_env"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
// showindex_name
|
||||
await page.locator('//*[@id="showindex_name"]').click();
|
||||
|
||||
expect(
|
||||
await page.locator('//*[@id="showindex_name"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
// shownamespace
|
||||
await page.locator('//*[@id="shownamespace"]').click();
|
||||
|
||||
expect(
|
||||
await page.locator('//*[@id="shownamespace"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
// showpinecone_api_key
|
||||
await page.locator('//*[@id="showpinecone_api_key"]').click();
|
||||
|
||||
expect(
|
||||
await page.locator('//*[@id="showpinecone_api_key"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
// showpinecone_env
|
||||
await page.locator('//*[@id="showpinecone_env"]').click();
|
||||
|
||||
expect(
|
||||
await page.locator('//*[@id="showpinecone_env"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
// showindex_name
|
||||
await page.locator('//*[@id="showindex_name"]').click();
|
||||
|
||||
expect(
|
||||
await page.locator('//*[@id="showindex_name"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
// shownamespace
|
||||
await page.locator('//*[@id="shownamespace"]').click();
|
||||
|
||||
expect(
|
||||
await page.locator('//*[@id="shownamespace"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
// showpinecone_api_key
|
||||
await page.locator('//*[@id="showpinecone_api_key"]').click();
|
||||
|
||||
expect(
|
||||
await page.locator('//*[@id="showpinecone_api_key"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
// showpinecone_env
|
||||
await page.locator('//*[@id="showpinecone_env"]').click();
|
||||
|
||||
expect(
|
||||
await page.locator('//*[@id="showpinecone_env"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
// showindex_name
|
||||
await page.locator('//*[@id="showindex_name"]').click();
|
||||
|
||||
expect(
|
||||
await page.locator('//*[@id="showindex_name"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
// shownamespace
|
||||
await page.locator('//*[@id="shownamespace"]').click();
|
||||
|
||||
expect(
|
||||
await page.locator('//*[@id="shownamespace"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
// showpinecone_api_key
|
||||
await page.locator('//*[@id="showpinecone_api_key"]').click();
|
||||
|
||||
expect(
|
||||
await page.locator('//*[@id="showpinecone_api_key"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
// showpinecone_env
|
||||
await page.locator('//*[@id="showpinecone_env"]').click();
|
||||
|
||||
expect(
|
||||
await page.locator('//*[@id="showpinecone_env"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
// showindex_name
|
||||
await page.locator('//*[@id="showindex_name"]').click();
|
||||
|
||||
expect(
|
||||
await page.locator('//*[@id="showindex_name"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
// shownamespace
|
||||
await page.locator('//*[@id="shownamespace"]').click();
|
||||
|
||||
expect(
|
||||
await page.locator('//*[@id="shownamespace"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
// showpinecone_api_key
|
||||
await page.locator('//*[@id="showpinecone_api_key"]').click();
|
||||
|
||||
expect(
|
||||
await page.locator('//*[@id="showpinecone_api_key"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
// showpinecone_env
|
||||
await page.locator('//*[@id="showpinecone_env"]').click();
|
||||
|
||||
expect(
|
||||
await page.locator('//*[@id="showpinecone_env"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
// showindex_name
|
||||
await page.locator('//*[@id="showindex_name"]').click();
|
||||
|
||||
expect(
|
||||
await page.locator('//*[@id="showindex_name"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
// shownamespace
|
||||
await page.locator('//*[@id="shownamespace"]').click();
|
||||
|
||||
expect(
|
||||
await page.locator('//*[@id="shownamespace"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
// showpinecone_api_key
|
||||
await page.locator('//*[@id="showpinecone_api_key"]').click();
|
||||
|
||||
expect(
|
||||
await page.locator('//*[@id="showpinecone_api_key"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
// showpinecone_env
|
||||
await page.locator('//*[@id="showpinecone_env"]').click();
|
||||
|
||||
expect(
|
||||
await page.locator('//*[@id="showpinecone_env"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
//showpool_threads
|
||||
await page.locator('//*[@id="showpool_threads"]').click();
|
||||
|
||||
expect(
|
||||
await page.locator('//*[@id="showpool_threads"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
//showtext_key
|
||||
await page.locator('//*[@id="showtext_key"]').click();
|
||||
|
||||
expect(
|
||||
await page.locator('//*[@id="showtext_key"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
await page.locator('//*[@id="saveChangesBtn"]').click();
|
||||
});
|
||||
106
src/frontend/tests/end-to-end/saveComponents.spec.ts
Normal file
106
src/frontend/tests/end-to-end/saveComponents.spec.ts
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
import { Page, expect, test } from "@playwright/test";
|
||||
import { readFileSync } from "fs";
|
||||
|
||||
test.describe("save component tests", () => {
|
||||
async function saveComponent(page: Page, pattern: RegExp, n: number) {
|
||||
for (let i = 0; i < n; i++) {
|
||||
await page.getByTestId(pattern).click();
|
||||
await page.getByLabel("Save").click();
|
||||
}
|
||||
}
|
||||
|
||||
/// <reference lib="dom"/>
|
||||
test("save group component tests", async ({ page }) => {
|
||||
await page.goto("http:localhost:3000/");
|
||||
await page.locator("span").filter({ hasText: "My Collection" }).isVisible();
|
||||
// Read your file into a buffer.
|
||||
const jsonContent = readFileSync(
|
||||
"tests/onlyFront/assets/collection.json",
|
||||
"utf-8"
|
||||
);
|
||||
|
||||
// Create the DataTransfer and File
|
||||
const dataTransfer = await page.evaluateHandle((data) => {
|
||||
const dt = new DataTransfer();
|
||||
// Convert the buffer to a hex array
|
||||
const file = new File([data], "flowtest.json", {
|
||||
type: "application/json",
|
||||
});
|
||||
dt.items.add(file);
|
||||
return dt;
|
||||
}, jsonContent);
|
||||
|
||||
// Now dispatch
|
||||
await page.dispatchEvent(
|
||||
'//*[@id="root"]/div/div[1]/div[2]/div[3]/div/div',
|
||||
"drop",
|
||||
{
|
||||
dataTransfer,
|
||||
}
|
||||
);
|
||||
|
||||
await page
|
||||
.getByTestId("edit-flow-button-e9ac1bdc-429b-475d-ac03-d26f9a2a3210-0")
|
||||
.click();
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
const genericNoda = page.getByTestId("div-generic-node");
|
||||
const elementCount = await genericNoda.count();
|
||||
if (elementCount > 0) {
|
||||
expect(true).toBeTruthy();
|
||||
}
|
||||
|
||||
await page.getByTestId("title-PythonFunctionTool").click({
|
||||
modifiers: ["Control"],
|
||||
});
|
||||
await page.getByTestId("title-ChatOpenAI").click({
|
||||
modifiers: ["Control"],
|
||||
});
|
||||
|
||||
await page.getByTestId("title-AgentInitializer").click({
|
||||
modifiers: ["Control"],
|
||||
});
|
||||
|
||||
await page.getByRole("button", { name: "Group" }).click();
|
||||
|
||||
let textArea = page.getByTestId("div-textarea-description");
|
||||
let elementCountText = await textArea.count();
|
||||
if (elementCountText > 0) {
|
||||
expect(true).toBeTruthy();
|
||||
}
|
||||
|
||||
let groupNode = page.getByTestId("title-Group");
|
||||
let elementGroup = await groupNode.count();
|
||||
if (elementGroup > 0) {
|
||||
expect(true).toBeTruthy();
|
||||
}
|
||||
|
||||
await page.getByTestId("title-Group").click();
|
||||
await page.getByTestId("more-options-modal").click();
|
||||
await page.getByTestId("save-button-modal").click();
|
||||
await page.getByTestId("delete-button-modal").click();
|
||||
|
||||
await page.getByPlaceholder("Search").click();
|
||||
await page.getByPlaceholder("Search").fill("group");
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
await page
|
||||
.getByTestId("saved_componentsGroup")
|
||||
.first()
|
||||
.dragTo(page.locator('//*[@id="react-flow-id"]'));
|
||||
await page.mouse.up();
|
||||
await page.mouse.down();
|
||||
|
||||
textArea = page.getByTestId("div-textarea-description");
|
||||
elementCountText = await textArea.count();
|
||||
if (elementCountText > 0) {
|
||||
expect(true).toBeTruthy();
|
||||
}
|
||||
|
||||
groupNode = page.getByTestId("title-Group");
|
||||
elementGroup = await groupNode.count();
|
||||
if (elementGroup > 0) {
|
||||
expect(true).toBeTruthy();
|
||||
}
|
||||
});
|
||||
});
|
||||
166
src/frontend/tests/end-to-end/toggleComponent.spec.ts
Normal file
166
src/frontend/tests/end-to-end/toggleComponent.spec.ts
Normal file
|
|
@ -0,0 +1,166 @@
|
|||
import { expect, test } from "@playwright/test";
|
||||
|
||||
test("ToggleComponent", async ({ page }) => {
|
||||
await page.goto("http://localhost:3000/");
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
await page.locator('//*[@id="new-project-btn"]').click();
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
await page.getByPlaceholder("Search").click();
|
||||
await page.getByPlaceholder("Search").fill("directoryLoader");
|
||||
|
||||
await page.waitForTimeout(2000);
|
||||
await page
|
||||
.getByTestId("documentloadersDirectoryLoader")
|
||||
.dragTo(page.locator('//*[@id="react-flow-id"]'));
|
||||
await page.mouse.up();
|
||||
await page.mouse.down();
|
||||
await page.getByTestId("div-generic-node").click();
|
||||
|
||||
await page.getByTestId("more-options-modal").click();
|
||||
await page.getByTestId("edit-button-modal").click();
|
||||
|
||||
await page.locator('//*[@id="showload_hidden"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showload_hidden"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
await page.locator('//*[@id="saveChangesBtn"]').click();
|
||||
|
||||
await page.getByTestId("toggle-load_hidden").click();
|
||||
expect(await page.getByTestId("toggle-load_hidden").isChecked()).toBeFalsy();
|
||||
|
||||
await page.getByTestId("toggle-load_hidden").click();
|
||||
expect(await page.getByTestId("toggle-load_hidden").isChecked()).toBeTruthy();
|
||||
|
||||
await page.getByTestId("toggle-load_hidden").click();
|
||||
expect(await page.getByTestId("toggle-load_hidden").isChecked()).toBeFalsy();
|
||||
|
||||
await page.getByTestId("toggle-load_hidden").click();
|
||||
expect(await page.getByTestId("toggle-load_hidden").isChecked()).toBeTruthy();
|
||||
|
||||
await page.getByTestId("toggle-load_hidden").click();
|
||||
expect(await page.getByTestId("toggle-load_hidden").isChecked()).toBeFalsy();
|
||||
|
||||
await page.getByTestId("div-generic-node").click();
|
||||
|
||||
await page.getByTestId("more-options-modal").click();
|
||||
await page.getByTestId("edit-button-modal").click();
|
||||
|
||||
expect(await page.getByTestId("toggle-load_hidden").isChecked()).toBeFalsy();
|
||||
|
||||
await page.locator('//*[@id="showglob"]').click();
|
||||
expect(await page.locator('//*[@id="showglob"]').isChecked()).toBeFalsy();
|
||||
|
||||
await page.locator('//*[@id="showload_hidden"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showload_hidden"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
await page.locator('//*[@id="showmax_concurrency"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showmax_concurrency"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
await page.locator('//*[@id="showmetadata"]').click();
|
||||
expect(await page.locator('//*[@id="showmetadata"]').isChecked()).toBeFalsy();
|
||||
|
||||
await page.locator('//*[@id="showpath"]').click();
|
||||
expect(await page.locator('//*[@id="showpath"]').isChecked()).toBeFalsy();
|
||||
|
||||
await page.locator('//*[@id="showrecursive"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showrecursive"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
await page.locator('//*[@id="showsilent_errors"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showsilent_errors"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
await page.locator('//*[@id="showuse_multithreading"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showuse_multithreading"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
await page.locator('//*[@id="showglob"]').click();
|
||||
expect(await page.locator('//*[@id="showglob"]').isChecked()).toBeTruthy();
|
||||
|
||||
await page.locator('//*[@id="showmax_concurrency"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showmax_concurrency"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
await page.locator('//*[@id="showmetadata"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showmetadata"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
await page.locator('//*[@id="showpath"]').click();
|
||||
expect(await page.locator('//*[@id="showpath"]').isChecked()).toBeTruthy();
|
||||
|
||||
await page.locator('//*[@id="showrecursive"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showrecursive"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
await page.locator('//*[@id="showsilent_errors"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showsilent_errors"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
await page.locator('//*[@id="showuse_multithreading"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showuse_multithreading"]').isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
await page.locator('//*[@id="saveChangesBtn"]').click();
|
||||
|
||||
const plusButtonLocator = page.getByTestId("toggle-load_hidden");
|
||||
const elementCount = await plusButtonLocator.count();
|
||||
if (elementCount === 0) {
|
||||
expect(true).toBeTruthy();
|
||||
|
||||
await page.getByTestId("div-generic-node").click();
|
||||
|
||||
await page.getByTestId("more-options-modal").click();
|
||||
await page.getByTestId("edit-button-modal").click();
|
||||
|
||||
await page.locator('//*[@id="showload_hidden"]').click();
|
||||
expect(
|
||||
await page.locator('//*[@id="showload_hidden"]').isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
expect(
|
||||
await page.getByTestId("toggle-edit-load_hidden").isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
await page.locator('//*[@id="saveChangesBtn"]').click();
|
||||
|
||||
await page.getByTestId("toggle-load_hidden").click();
|
||||
expect(
|
||||
await page.getByTestId("toggle-load_hidden").isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
await page.getByTestId("toggle-load_hidden").click();
|
||||
expect(
|
||||
await page.getByTestId("toggle-load_hidden").isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
await page.getByTestId("toggle-load_hidden").click();
|
||||
expect(
|
||||
await page.getByTestId("toggle-load_hidden").isChecked()
|
||||
).toBeTruthy();
|
||||
|
||||
await page.getByTestId("toggle-load_hidden").click();
|
||||
expect(
|
||||
await page.getByTestId("toggle-load_hidden").isChecked()
|
||||
).toBeFalsy();
|
||||
|
||||
await page.getByTestId("toggle-load_hidden").click();
|
||||
expect(
|
||||
await page.getByTestId("toggle-load_hidden").isChecked()
|
||||
).toBeTruthy();
|
||||
}
|
||||
});
|
||||
|
|
@ -1,121 +0,0 @@
|
|||
import { test } from "@playwright/test";
|
||||
|
||||
test.describe("Login Tests", () => {
|
||||
test("Login_Success", async ({ page }) => {
|
||||
// await page.route("**/api/v1/login", async (route) => {
|
||||
// const json = {
|
||||
// access_token:
|
||||
// "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhMWNlM2FkOS1iZTE2LTRiNjgtOGRhYi1hYjA4YTVjMmZjZTkiLCJleHAiOjE2OTUyNTIwNTh9.MBYFwMhTcZnsW_L7p4qavUhSDylCllJQWUCJdU1wX8o",
|
||||
// refresh_token:
|
||||
// "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhMWNlM2FkOS1iZTE2LTRiNjgtOGRhYi1hYjA4YTVjMmZjZTkiLCJ0eXBlIjoicmYiLCJleHAiOjE2OTUyNTI2NTh9.a4wL9-XK_zyTyrXduBFgCsODFXrqiByVr5HOeiCbiQA",
|
||||
// token_type: "bearer",
|
||||
// };
|
||||
// await route.fulfill({ json });
|
||||
// });
|
||||
// await page.goto("http://localhost:3000/");
|
||||
// await page.waitForURL("http://localhost:3000/login");
|
||||
// await page.waitForURL("http://localhost:3000/login", { timeout: 100 });
|
||||
// await page.getByPlaceholder("Username").click();
|
||||
// await page.getByPlaceholder("Username").fill("test");
|
||||
// await page.getByPlaceholder("Password").click();
|
||||
// await page.getByPlaceholder("Password").fill("test");
|
||||
// await page.getByRole("button", { name: "Sign in" }).click();
|
||||
// await page.getByRole("button", { name: "Community Examples" }).click();
|
||||
// await page.waitForSelector(".community-pages-flows-panel");
|
||||
// expect(
|
||||
// await page
|
||||
// .locator(".community-pages-flows-panel")
|
||||
// .evaluate((el) => el.children)
|
||||
// ).toBeTruthy();
|
||||
// });
|
||||
// test("Login Error", async ({ page }) => {
|
||||
// await page.route("**/api/v1/login", async (route) => {
|
||||
// const json = { detail: "Incorrect username or password" };
|
||||
// await route.fulfill({ json, status: 401 });
|
||||
// });
|
||||
// await page.goto("http://localhost:3000/");
|
||||
// await page.waitForURL("http://localhost:3000/login");
|
||||
// await page.waitForURL("http://localhost:3000/login", { timeout: 100 });
|
||||
// await page.getByPlaceholder("Username").click();
|
||||
// await page.getByPlaceholder("Username").fill("test");
|
||||
// await page.getByPlaceholder("Password").click();
|
||||
// await page.getByPlaceholder("Password").fill("test5");
|
||||
// await page.getByRole("button", { name: "Sign in" }).click();
|
||||
// await page.getByRole("heading", { name: "Error signing in" }).click();
|
||||
// });
|
||||
// test("Login create account wrong form", async ({ page }) => {
|
||||
// const fullfillForm = async (username, password, confirmPassword) => {
|
||||
// await page.getByPlaceholder("Username").click();
|
||||
// await page.getByPlaceholder("Username").fill(username);
|
||||
// await page.getByPlaceholder("Password", { exact: true }).click();
|
||||
// await page.getByPlaceholder("Password", { exact: true }).fill(password);
|
||||
// await page.getByPlaceholder("Confirm your password").click();
|
||||
// await page
|
||||
// .getByPlaceholder("Confirm your password")
|
||||
// .fill(confirmPassword);
|
||||
// };
|
||||
// await page.goto("http://localhost:3000/");
|
||||
// await page.waitForURL("http://localhost:3000/login");
|
||||
// await page.waitForURL("http://localhost:3000/login", { timeout: 100 });
|
||||
// await page
|
||||
// .getByRole("button", { name: "Don't have an account? Sign Up" })
|
||||
// .click();
|
||||
// await page.getByText("Sign up to Langflow").click();
|
||||
// await page.goto("http://localhost:3000/signup");
|
||||
// await page.getByText("Sign up to Langflow").click();
|
||||
// await fullfillForm("name", "vazz", "vazz5");
|
||||
// expect(
|
||||
// await page.getByRole("button", { name: "Sign up" }).isDisabled()
|
||||
// ).toBeTruthy();
|
||||
// await fullfillForm("", "vazz", "vazz");
|
||||
// expect(
|
||||
// await page.getByRole("button", { name: "Sign up" }).isDisabled()
|
||||
// ).toBeTruthy();
|
||||
// await fullfillForm("name", "", "");
|
||||
// expect(
|
||||
// await page.getByRole("button", { name: "Sign up" }).isDisabled()
|
||||
// ).toBeTruthy();
|
||||
// await fullfillForm("", "", "");
|
||||
// expect(
|
||||
// await page.getByRole("button", { name: "Sign up" }).isDisabled()
|
||||
// ).toBeTruthy();
|
||||
// });
|
||||
// test("Login create account success", async ({ page }) => {
|
||||
// await page.route("**/api/v1/users/", async (route) => {
|
||||
// const json = {
|
||||
// id: "e9ac1bdc-429b-475d-ac03-d26f9a2a3210",
|
||||
// username: "teste",
|
||||
// profile_image: null,
|
||||
// is_active: false,
|
||||
// is_superuser: false,
|
||||
// create_at: "2023-09-21T01:45:51.873303",
|
||||
// updated_at: "2023-09-21T01:45:51.873305",
|
||||
// last_login_at: null,
|
||||
// };
|
||||
// await route.fulfill({ json, status: 201 });
|
||||
// });
|
||||
// const submitForm = async (username, password, confirmPassword) => {
|
||||
// await page.getByPlaceholder("Username").click();
|
||||
// await page.getByPlaceholder("Username").fill(username);
|
||||
// await page.getByPlaceholder("Password", { exact: true }).click();
|
||||
// await page.getByPlaceholder("Password", { exact: true }).fill(password);
|
||||
// await page.getByPlaceholder("Confirm your password").click();
|
||||
// await page
|
||||
// .getByPlaceholder("Confirm your password")
|
||||
// .fill(confirmPassword);
|
||||
// };
|
||||
// await page.goto("http://localhost:3000/");
|
||||
// await page.waitForURL("http://localhost:3000/login");
|
||||
// await page.waitForURL("http://localhost:3000/login", { timeout: 100 });
|
||||
// await page
|
||||
// .getByRole("button", { name: "Don't have an account? Sign Up" })
|
||||
// .click();
|
||||
// await page.getByText("Sign up to Langflow").click();
|
||||
// await page.goto("http://localhost:3000/signup");
|
||||
// await page.getByText("Sign up to Langflow").click();
|
||||
// await submitForm("teste", "pass", "pass");
|
||||
// await page.getByRole("button", { name: "Sign up" }).click();
|
||||
// await page.waitForURL("http://localhost:3000/login", { timeout: 1000 });
|
||||
// await page.getByText("Account created! Await admin activation.").click();
|
||||
});
|
||||
});
|
||||
Loading…
Reference in a new issue