-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
š (GenericNode/index.tsx): Fix potential null pointer exception by adā¦
ā¦ding non-null assertion operator to info property access āØ (generalBugs-shard-11.spec.ts): Add end-to-end tests to ensure users can use ComposIO without api_key error and connect tools successfully
- Loading branch information
1 parent
f0e97c1
commit 64210ca
Showing
2 changed files
with
128 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
127 changes: 127 additions & 0 deletions
127
src/frontend/tests/scheduled-end-to-end/generalBugs-shard-11.spec.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,127 @@ | ||
import { expect, test } from "@playwright/test"; | ||
|
||
test("user should be able to use ComposIO without getting api_key error", async ({ | ||
page, | ||
}) => { | ||
await page.goto("/"); | ||
await page.waitForTimeout(2000); | ||
|
||
let modalCount = 0; | ||
try { | ||
const modalTitleElement = await page.getByTestId("modal-title"); | ||
modalCount = await modalTitleElement.count(); | ||
} catch (error) { | ||
modalCount = 0; | ||
} | ||
|
||
while (modalCount === 0) { | ||
await page.getByText("New Project", { exact: true }).click(); | ||
await page.waitForTimeout(3000); | ||
modalCount = await page.getByTestId("modal-title").count(); | ||
} | ||
|
||
await page.waitForSelector('[data-testid="blank-flow"]', { | ||
timeout: 30000, | ||
}); | ||
await page.getByTestId("blank-flow").click(); | ||
await page.waitForSelector('[data-testid="extended-disclosure"]', { | ||
timeout: 30000, | ||
}); | ||
await page.getByTestId("extended-disclosure").click(); | ||
await page.getByPlaceholder("Search").click(); | ||
await page.getByPlaceholder("Search").fill("composio"); | ||
|
||
await page.waitForTimeout(1000); | ||
|
||
const modelElement = await page.getByTestId("toolkitsComposio Tools"); | ||
const targetElement = await page.locator('//*[@id="react-flow-id"]'); | ||
await modelElement.dragTo(targetElement); | ||
|
||
await page.mouse.up(); | ||
await page.mouse.down(); | ||
|
||
await page.getByTitle("fit view").click(); | ||
await page.getByTitle("zoom out").click(); | ||
await page.getByTitle("zoom out").click(); | ||
|
||
await page.waitForTimeout(1000); | ||
|
||
expect(await page.getByText("api_key").isVisible()).toBe(false); | ||
}); | ||
|
||
test("user should be able to use connect tools", async ({ page }) => { | ||
await page.goto("/"); | ||
await page.waitForTimeout(2000); | ||
|
||
let modalCount = 0; | ||
try { | ||
const modalTitleElement = await page.getByTestId("modal-title"); | ||
modalCount = await modalTitleElement.count(); | ||
} catch (error) { | ||
modalCount = 0; | ||
} | ||
|
||
while (modalCount === 0) { | ||
await page.getByText("New Project", { exact: true }).click(); | ||
await page.waitForTimeout(3000); | ||
modalCount = await page.getByTestId("modal-title").count(); | ||
} | ||
|
||
await page.waitForSelector('[data-testid="blank-flow"]', { | ||
timeout: 30000, | ||
}); | ||
await page.getByTestId("blank-flow").click(); | ||
await page.waitForSelector('[data-testid="extended-disclosure"]', { | ||
timeout: 30000, | ||
}); | ||
await page.getByTestId("extended-disclosure").click(); | ||
await page.getByPlaceholder("Search").click(); | ||
await page.getByPlaceholder("Search").fill("search api"); | ||
|
||
await page.waitForTimeout(1000); | ||
|
||
let modelElement = await page.getByTestId("toolsSearch API"); | ||
let targetElement = await page.locator('//*[@id="react-flow-id"]'); | ||
await modelElement.dragTo(targetElement); | ||
|
||
await page.mouse.up(); | ||
await page.mouse.down(); | ||
|
||
await page.getByTitle("fit view").click(); | ||
await page.getByTitle("zoom out").click(); | ||
await page.getByTitle("zoom out").click(); | ||
|
||
await page.waitForTimeout(1000); | ||
|
||
await page.getByPlaceholder("Search").click(); | ||
await page.getByPlaceholder("Search").fill("tool calling agent"); | ||
|
||
await page.waitForTimeout(1000); | ||
|
||
modelElement = await page.getByTestId("agentsTool Calling Agent"); | ||
targetElement = await page.locator('//*[@id="react-flow-id"]'); | ||
await modelElement.dragTo(targetElement); | ||
|
||
await page.mouse.up(); | ||
await page.mouse.down(); | ||
|
||
await page.getByTitle("fit view").click(); | ||
await page.getByTitle("zoom out").click(); | ||
await page.getByTitle("zoom out").click(); | ||
|
||
//connection | ||
const searchApiOutput = await page | ||
.getByTestId("handle-searchapi-shownode-tool-right") | ||
.nth(0); | ||
await searchApiOutput.hover(); | ||
await page.mouse.down(); | ||
const toolCallingAgentInput = await page | ||
.getByTestId("handle-toolcallingagent-shownode-tools-left") | ||
.nth(0); | ||
await toolCallingAgentInput.hover(); | ||
await page.mouse.up(); | ||
|
||
await page.waitForTimeout(1000); | ||
|
||
expect(await page.locator(".react-flow__edge-interaction").count()).toBe(1); | ||
}); |