fixing tests
This commit is contained in:
parent
65e888b7a8
commit
611e8134da
9 changed files with 117 additions and 89 deletions
|
|
@ -150,9 +150,9 @@ test("user must be able to see output inspection", async ({ page }) => {
|
||||||
|
|
||||||
await page.getByTestId("button_run_chat output").last().click();
|
await page.getByTestId("button_run_chat output").last().click();
|
||||||
|
|
||||||
await page.waitForTimeout(2000);
|
await page.waitForTimeout(8000);
|
||||||
|
|
||||||
await page.getByTestId("icon-ScanEye").last().click();
|
await page.getByTestId("icon-ScanEye").nth(4).click();
|
||||||
|
|
||||||
await page.getByText("Sender", { exact: true }).isVisible();
|
await page.getByText("Sender", { exact: true }).isVisible();
|
||||||
await page.getByText("Type", { exact: true }).isVisible();
|
await page.getByText("Type", { exact: true }).isVisible();
|
||||||
|
|
|
||||||
|
|
@ -44,18 +44,18 @@ test("dropDownComponent", async ({ page }) => {
|
||||||
|
|
||||||
await page.getByTestId("dropdown-model_id").click();
|
await page.getByTestId("dropdown-model_id").click();
|
||||||
|
|
||||||
await page.getByTestId("ai21.j2-mid-v1-10-option").click();
|
await page.getByTestId("value-dropdown-dropdown-model_id").click();
|
||||||
|
|
||||||
let value = await page
|
let value = await page
|
||||||
.getByTestId("value-dropdown-dropdown-model_id")
|
.getByTestId("value-dropdown-dropdown-model_id")
|
||||||
.first()
|
.first()
|
||||||
.innerText();
|
.innerText();
|
||||||
if (value !== "ai21.j2-mid-v1") {
|
if (value !== "anthropic.claude-3-haiku-20240307-v1:0") {
|
||||||
expect(false).toBeTruthy();
|
expect(false).toBeTruthy();
|
||||||
}
|
}
|
||||||
|
|
||||||
await page.getByTestId("dropdown-model_id").click();
|
await page.getByTestId("dropdown-model_id").click();
|
||||||
await page.getByTestId("anthropic.claude-v2:1-6-option").click();
|
await page.getByText("anthropic.claude-v2").last().click();
|
||||||
|
|
||||||
value = await page.getByTestId("dropdown-model_id").innerText();
|
value = await page.getByTestId("dropdown-model_id").innerText();
|
||||||
if (value !== "anthropic.claude-v2:1") {
|
if (value !== "anthropic.claude-v2:1") {
|
||||||
|
|
@ -165,77 +165,129 @@ test("dropDownComponent", async ({ page }) => {
|
||||||
).toBeTruthy();
|
).toBeTruthy();
|
||||||
|
|
||||||
await page.getByTestId("dropdown-edit-model_id").click();
|
await page.getByTestId("dropdown-edit-model_id").click();
|
||||||
await page.getByTestId("ai21.j2-mid-v1-10-option").click();
|
await page.getByText("cohere").last().click();
|
||||||
|
|
||||||
value = await page.getByTestId("dropdown-edit-model_id").innerText();
|
value = await page.getByTestId("dropdown-edit-model_id").innerText();
|
||||||
if (value !== "ai21.j2-mid-v1") {
|
if (value !== "cohere.embed-multilingual-v3") {
|
||||||
expect(false).toBeTruthy();
|
expect(false).toBeTruthy();
|
||||||
}
|
}
|
||||||
|
|
||||||
await page.getByText("Save Changes", { exact: true }).click();
|
await page.getByText("Save Changes", { exact: true }).click();
|
||||||
|
|
||||||
value = await page.getByTestId("dropdown-model_id").innerText();
|
value = await page.getByTestId("dropdown-model_id").innerText();
|
||||||
if (value !== "ai21.j2-mid-v1") {
|
if (value !== "cohere.embed-multilingual-v3") {
|
||||||
expect(false).toBeTruthy();
|
expect(false).toBeTruthy();
|
||||||
}
|
}
|
||||||
await page.getByTestId("code-button-modal").click();
|
await page.getByTestId("code-button-modal").click();
|
||||||
await page
|
await page
|
||||||
.locator("#CodeEditor div")
|
.locator("#CodeEditor div")
|
||||||
.filter({ hasText: "from typing import" })
|
.filter({ hasText: "import BedrockChat" })
|
||||||
.nth(1)
|
.nth(1)
|
||||||
.click();
|
.click();
|
||||||
await page.locator("textarea").press("Control+a");
|
await page.locator("textarea").press("Control+a");
|
||||||
const emptyOptionsCode = `from typing import Optional
|
const emptyOptionsCode = `from langchain_community.chat_models.bedrock import BedrockChat
|
||||||
from langflow.field_typing import BaseLanguageModel
|
|
||||||
from langchain_community.llms.bedrock import Bedrock
|
|
||||||
|
|
||||||
from langflow.interface.custom.custom_component import CustomComponent
|
from langflow.base.constants import STREAM_INFO_TEXT
|
||||||
|
from langflow.base.models.model import LCModelComponent
|
||||||
|
from langflow.field_typing import BaseLanguageModel, Text
|
||||||
|
from langflow.inputs import BoolInput, DictInput, DropdownInput, StrInput
|
||||||
|
from langflow.inputs import MessageInput
|
||||||
|
from langflow.template import Output
|
||||||
|
|
||||||
|
|
||||||
class AmazonBedrockComponent(CustomComponent):
|
class AmazonBedrockComponent(LCModelComponent):
|
||||||
display_name: str = "Amazon Bedrock"
|
display_name: str = "Amazon Bedrock"
|
||||||
description: str = "LLM model from Amazon Bedrock."
|
description: str = "Generate text using Amazon Bedrock LLMs."
|
||||||
icon = "Amazon"
|
icon = "Amazon"
|
||||||
|
|
||||||
def build_config(self):
|
inputs = [
|
||||||
return {
|
MessageInput(name="input_value", display_name="Input", input_types=["Text", "Data", "Prompt"]),
|
||||||
"model_id": {
|
DropdownInput(
|
||||||
"display_name": "Model Id",
|
name="model_id",
|
||||||
"options": [],
|
display_name="Model Id",
|
||||||
},
|
options=[
|
||||||
"credentials_profile_name": {"display_name": "Credentials Profile Name"},
|
"amazon.titan-text-express-v1",
|
||||||
"streaming": {"display_name": "Streaming", "field_type": "bool"},
|
"amazon.titan-text-lite-v1",
|
||||||
"endpoint_url": {"display_name": "Endpoint URL"},
|
"amazon.titan-text-premier-v1:0",
|
||||||
"region_name": {"display_name": "Region Name"},
|
"amazon.titan-embed-text-v1",
|
||||||
"model_kwargs": {"display_name": "Model Kwargs"},
|
"amazon.titan-embed-text-v2:0",
|
||||||
"cache": {"display_name": "Cache"},
|
"amazon.titan-embed-image-v1",
|
||||||
"code": {"advanced": True},
|
"amazon.titan-image-generator-v1",
|
||||||
}
|
"anthropic.claude-v2",
|
||||||
|
"anthropic.claude-v2:1",
|
||||||
|
"anthropic.claude-3-sonnet-20240229-v1:0",
|
||||||
|
"anthropic.claude-3-haiku-20240307-v1:0",
|
||||||
|
"anthropic.claude-3-opus-20240229-v1:0",
|
||||||
|
"anthropic.claude-instant-v1",
|
||||||
|
"ai21.j2-mid-v1",
|
||||||
|
"ai21.j2-ultra-v1",
|
||||||
|
"cohere.command-text-v14",
|
||||||
|
"cohere.command-light-text-v14",
|
||||||
|
"cohere.command-r-v1:0",
|
||||||
|
"cohere.command-r-plus-v1:0",
|
||||||
|
"cohere.embed-english-v3",
|
||||||
|
"cohere.embed-multilingual-v3",
|
||||||
|
"meta.llama2-13b-chat-v1",
|
||||||
|
"meta.llama2-70b-chat-v1",
|
||||||
|
"meta.llama3-8b-instruct-v1:0",
|
||||||
|
"meta.llama3-70b-instruct-v1:0",
|
||||||
|
"mistral.mistral-7b-instruct-v0:2",
|
||||||
|
"mistral.mixtral-8x7b-instruct-v0:1",
|
||||||
|
"mistral.mistral-large-2402-v1:0",
|
||||||
|
"mistral.mistral-small-2402-v1:0",
|
||||||
|
"stability.stable-diffusion-xl-v0",
|
||||||
|
"stability.stable-diffusion-xl-v1",
|
||||||
|
],
|
||||||
|
value="anthropic.claude-3-haiku-20240307-v1:0",
|
||||||
|
),
|
||||||
|
StrInput(name="credentials_profile_name", display_name="Credentials Profile Name"),
|
||||||
|
StrInput(name="region_name", display_name="Region Name"),
|
||||||
|
DictInput(name="model_kwargs", display_name="Model Kwargs", advanced=True),
|
||||||
|
StrInput(name="endpoint_url", display_name="Endpoint URL"),
|
||||||
|
BoolInput(name="cache", display_name="Cache"),
|
||||||
|
StrInput(
|
||||||
|
name="system_message",
|
||||||
|
display_name="System Message",
|
||||||
|
info="System message to pass to the model.",
|
||||||
|
advanced=True,
|
||||||
|
),
|
||||||
|
BoolInput(name="stream", display_name="Stream", info=STREAM_INFO_TEXT, advanced=True),
|
||||||
|
]
|
||||||
|
outputs = [
|
||||||
|
Output(display_name="Text", name="text_output", method="text_response"),
|
||||||
|
Output(display_name="Language Model", name="model_output", method="build_model"),
|
||||||
|
]
|
||||||
|
|
||||||
def build(
|
def text_response(self) -> Text:
|
||||||
self,
|
input_value = self.input_value
|
||||||
model_id: str = "anthropic.claude-instant-v1",
|
stream = self.stream
|
||||||
credentials_profile_name: Optional[str] = None,
|
system_message = self.system_message
|
||||||
region_name: Optional[str] = None,
|
output = self.build_model()
|
||||||
model_kwargs: Optional[dict] = None,
|
result = self.get_chat_result(output, stream, input_value, system_message)
|
||||||
endpoint_url: Optional[str] = None,
|
self.status = result
|
||||||
streaming: bool = False,
|
return result
|
||||||
cache: Optional[bool] = None,
|
|
||||||
) -> BaseLanguageModel:
|
def build_model(self) -> BaseLanguageModel:
|
||||||
|
model_id = self.model_id
|
||||||
|
credentials_profile_name = self.credentials_profile_name
|
||||||
|
region_name = self.region_name
|
||||||
|
model_kwargs = self.model_kwargs
|
||||||
|
endpoint_url = self.endpoint_url
|
||||||
|
cache = self.cache
|
||||||
|
stream = self.stream
|
||||||
try:
|
try:
|
||||||
output = Bedrock(
|
output = BedrockChat(
|
||||||
credentials_profile_name=credentials_profile_name,
|
credentials_profile_name=credentials_profile_name,
|
||||||
model_id=model_id,
|
model_id=model_id,
|
||||||
region_name=region_name,
|
region_name=region_name,
|
||||||
model_kwargs=model_kwargs,
|
model_kwargs=model_kwargs,
|
||||||
endpoint_url=endpoint_url,
|
endpoint_url=endpoint_url,
|
||||||
streaming=streaming,
|
streaming=stream,
|
||||||
cache=cache,
|
cache=cache,
|
||||||
) # type: ignore
|
)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise ValueError("Could not connect to AmazonBedrock API.") from e
|
raise ValueError("Could not connect to AmazonBedrock API.") from e
|
||||||
return output
|
return output
|
||||||
|
|
||||||
`;
|
`;
|
||||||
await page.locator("textarea").fill(emptyOptionsCode);
|
await page.locator("textarea").fill(emptyOptionsCode);
|
||||||
await page.getByRole("button", { name: "Check & Save" }).click();
|
await page.getByRole("button", { name: "Check & Save" }).click();
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { expect, test } from "@playwright/test";
|
import { expect, test } from "@playwright/test";
|
||||||
import path from "path";
|
import path from "path";
|
||||||
|
|
||||||
test("dropDownComponent", async ({ page }) => {
|
test("should be able to upload a file", async ({ page }) => {
|
||||||
await page.goto("/");
|
await page.goto("/");
|
||||||
await page.waitForTimeout(2000);
|
await page.waitForTimeout(2000);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -188,9 +188,9 @@ test("LLMChain - Filter", async ({ page }) => {
|
||||||
)
|
)
|
||||||
.click();
|
.click();
|
||||||
|
|
||||||
await expect(page.getByTestId("inputsChat Input")).toBeVisible();
|
await expect(page.getByTestId("saved_componentsChat Input")).toBeVisible();
|
||||||
await expect(page.getByTestId("outputsChat Output")).toBeVisible();
|
await expect(page.getByTestId("outputsChat Output")).toBeVisible();
|
||||||
await expect(page.getByTestId("helpersID Generator")).toBeVisible();
|
await expect(page.getByTestId("helpersID Generator")).toBeVisible();
|
||||||
await expect(page.getByTestId("vectorstoresChroma")).toBeVisible();
|
await expect(page.getByTestId("vectorstoresChroma DB")).toBeVisible();
|
||||||
await expect(page.getByTestId("disclosure-vector stores")).toBeVisible();
|
await expect(page.getByTestId("disclosure-vector stores")).toBeVisible();
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ test("InputComponent", async ({ page }) => {
|
||||||
await page.waitForTimeout(1000);
|
await page.waitForTimeout(1000);
|
||||||
|
|
||||||
await page
|
await page
|
||||||
.getByTestId("vectorstoresChroma")
|
.getByTestId("vectorstoresChroma DB")
|
||||||
.dragTo(page.locator('//*[@id="react-flow-id"]'));
|
.dragTo(page.locator('//*[@id="react-flow-id"]'));
|
||||||
await page.mouse.up();
|
await page.mouse.up();
|
||||||
await page.mouse.down();
|
await page.mouse.down();
|
||||||
|
|
@ -88,11 +88,6 @@ test("InputComponent", async ({ page }) => {
|
||||||
await page.locator('//*[@id="showcollection_name"]').isChecked(),
|
await page.locator('//*[@id="showcollection_name"]').isChecked(),
|
||||||
).toBeFalsy();
|
).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();
|
await page.locator('//*[@id="showchroma_server_cors_allow_origins"]').click();
|
||||||
expect(
|
expect(
|
||||||
await page
|
await page
|
||||||
|
|
@ -120,11 +115,6 @@ test("InputComponent", async ({ page }) => {
|
||||||
await page.locator('//*[@id="showchroma_server_ssl_enabled"]').isChecked(),
|
await page.locator('//*[@id="showchroma_server_ssl_enabled"]').isChecked(),
|
||||||
).toBeFalsy();
|
).toBeFalsy();
|
||||||
|
|
||||||
await page.locator('//*[@id="showindex_directory"]').click();
|
|
||||||
expect(
|
|
||||||
await page.locator('//*[@id="showindex_directory"]').isChecked(),
|
|
||||||
).toBeTruthy();
|
|
||||||
|
|
||||||
let valueEditNode = await page
|
let valueEditNode = await page
|
||||||
.getByTestId("popover-anchor-input-collection_name-edit")
|
.getByTestId("popover-anchor-input-collection_name-edit")
|
||||||
.inputValue();
|
.inputValue();
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ test("InputListComponent", async ({ page }) => {
|
||||||
|
|
||||||
await page.waitForTimeout(1000);
|
await page.waitForTimeout(1000);
|
||||||
await page
|
await page
|
||||||
.getByTestId("vectorstoresAstra DB")
|
.getByTestId("vectorsearchAstra DB Search")
|
||||||
.dragTo(page.locator('//*[@id="react-flow-id"]'));
|
.dragTo(page.locator('//*[@id="react-flow-id"]'));
|
||||||
await page.mouse.up();
|
await page.mouse.up();
|
||||||
await page.mouse.down();
|
await page.mouse.down();
|
||||||
|
|
|
||||||
|
|
@ -42,13 +42,18 @@ test("should able to see and interact with logs", async ({ page }) => {
|
||||||
await page.getByTestId("icon-ChevronDown").click();
|
await page.getByTestId("icon-ChevronDown").click();
|
||||||
await page.getByText("Logs").click();
|
await page.getByText("Logs").click();
|
||||||
|
|
||||||
await page.getByText("timestamp").isVisible();
|
await page.getByText("timestamp").first().isVisible();
|
||||||
await page.getByText("flow_id").isVisible();
|
await page.getByText("flow_id").first().isVisible();
|
||||||
await page.getByText("source").isVisible();
|
await page.getByText("source").first().isVisible();
|
||||||
await page.getByText("target", { exact: true }).isVisible();
|
await page.getByText("target", { exact: true }).first().isVisible();
|
||||||
await page.getByText("target_args", { exact: true }).isVisible();
|
await page.getByText("target_args", { exact: true }).first().isVisible();
|
||||||
await page.getByRole("gridcell").first().isVisible();
|
await page.getByRole("gridcell").first().isVisible();
|
||||||
|
|
||||||
|
await page.keyboard.press("Escape");
|
||||||
|
|
||||||
|
await page.getByTestId("user-profile-settings").first().click();
|
||||||
|
await page.getByText("Settings", { exact: true }).click();
|
||||||
|
|
||||||
await page.getByText("Messages", { exact: true }).click();
|
await page.getByText("Messages", { exact: true }).click();
|
||||||
await page.getByText("index", { exact: true }).last().isVisible();
|
await page.getByText("index", { exact: true }).last().isVisible();
|
||||||
await page.getByText("timestamp", { exact: true }).isVisible();
|
await page.getByText("timestamp", { exact: true }).isVisible();
|
||||||
|
|
|
||||||
|
|
@ -37,18 +37,6 @@ test("NestedComponent", async ({ page }) => {
|
||||||
await page.getByTestId("more-options-modal").click();
|
await page.getByTestId("more-options-modal").click();
|
||||||
await page.getByTestId("edit-button-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
|
// showindex_name
|
||||||
await page.locator('//*[@id="showindex_name"]').click();
|
await page.locator('//*[@id="showindex_name"]').click();
|
||||||
|
|
||||||
|
|
@ -175,13 +163,6 @@ test("NestedComponent", async ({ page }) => {
|
||||||
await page.locator('//*[@id="showpinecone_api_key"]').isChecked(),
|
await page.locator('//*[@id="showpinecone_api_key"]').isChecked(),
|
||||||
).toBeTruthy();
|
).toBeTruthy();
|
||||||
|
|
||||||
//showpool_threads
|
|
||||||
await page.locator('//*[@id="showpool_threads"]').click();
|
|
||||||
|
|
||||||
expect(
|
|
||||||
await page.locator('//*[@id="showpool_threads"]').isChecked(),
|
|
||||||
).toBeFalsy();
|
|
||||||
|
|
||||||
//showtext_key
|
//showtext_key
|
||||||
await page.locator('//*[@id="showtext_key"]').click();
|
await page.locator('//*[@id="showtext_key"]').click();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -90,7 +90,7 @@ test("check if tweaks are updating when someothing on the flow changes", async (
|
||||||
await page.waitForTimeout(1000);
|
await page.waitForTimeout(1000);
|
||||||
|
|
||||||
await page
|
await page
|
||||||
.getByTestId("vectorstoresChroma")
|
.getByTestId("vectorstoresChroma DB")
|
||||||
.dragTo(page.locator('//*[@id="react-flow-id"]'));
|
.dragTo(page.locator('//*[@id="react-flow-id"]'));
|
||||||
await page.mouse.up();
|
await page.mouse.up();
|
||||||
await page.mouse.down();
|
await page.mouse.down();
|
||||||
|
|
@ -103,25 +103,25 @@ test("check if tweaks are updating when someothing on the flow changes", async (
|
||||||
.getByTestId("popover-anchor-input-collection_name")
|
.getByTestId("popover-anchor-input-collection_name")
|
||||||
.fill("collection_name_test_123123123!@#$&*(&%$@");
|
.fill("collection_name_test_123123123!@#$&*(&%$@");
|
||||||
|
|
||||||
await page.getByTestId("popover-anchor-input-index_directory").click();
|
await page.getByTestId("popover-anchor-input-persist_directory").click();
|
||||||
await page
|
await page
|
||||||
.getByTestId("popover-anchor-input-index_directory")
|
.getByTestId("popover-anchor-input-persist_directory")
|
||||||
.fill("index_directory_123123123!@#$&*(&%$@");
|
.fill("persist_directory_123123123!@#$&*(&%$@");
|
||||||
|
|
||||||
await page.getByText("API", { exact: true }).first().click();
|
await page.getByText("API", { exact: true }).first().click();
|
||||||
|
|
||||||
await page.getByText("Tweaks").nth(1).click();
|
await page.getByText("Tweaks").nth(1).click();
|
||||||
|
|
||||||
await page.getByText("collection_name_test_123123123!@#$&*(&%$@").isVisible();
|
await page.getByText("collection_name_test_123123123!@#$&*(&%$@").isVisible();
|
||||||
await page.getByText("index_directory_123123123!@#$&*(&%$@").isVisible();
|
await page.getByText("persist_directory_123123123!@#$&*(&%$@").isVisible();
|
||||||
|
|
||||||
await page.getByText("Python API", { exact: true }).click();
|
await page.getByText("Python API", { exact: true }).click();
|
||||||
|
|
||||||
await page.getByText("collection_name_test_123123123!@#$&*(&%$@").isVisible();
|
await page.getByText("collection_name_test_123123123!@#$&*(&%$@").isVisible();
|
||||||
await page.getByText("index_directory_123123123!@#$&*(&%$@").isVisible();
|
await page.getByText("persist_directory_123123123!@#$&*(&%$@").isVisible();
|
||||||
|
|
||||||
await page.getByText("Python Code", { exact: true }).click();
|
await page.getByText("Python Code", { exact: true }).click();
|
||||||
|
|
||||||
await page.getByText("collection_name_test_123123123!@#$&*(&%$@").isVisible();
|
await page.getByText("collection_name_test_123123123!@#$&*(&%$@").isVisible();
|
||||||
await page.getByText("index_directory_123123123!@#$&*(&%$@").isVisible();
|
await page.getByText("persist_directory_123123123!@#$&*(&%$@").isVisible();
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue