diff --git a/Dockerfile b/Dockerfile index afe112a40..520c407de 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,4 +12,4 @@ WORKDIR $HOME/app COPY --chown=user . $HOME/app RUN pip install langflow>==0.0.86 -U --user -CMD ["python", "-m", "langflow", "--host", "0.0.0.0", "--port", "7860"] +CMD ["python", "-m", "langflow", "run", "--host", "0.0.0.0", "--port", "7860"] diff --git a/src/backend/langflow/template/frontend_node/base.py b/src/backend/langflow/template/frontend_node/base.py index 442e2ffd7..36d651e78 100644 --- a/src/backend/langflow/template/frontend_node/base.py +++ b/src/backend/langflow/template/frontend_node/base.py @@ -164,7 +164,7 @@ class FrontendNode(BaseModel): ) -> None: """Handles specific field values for certain fields.""" if key == "headers": - field.value = """{'Authorization': 'Bearer '}""" + field.value = """{"Authorization": "Bearer "}""" FrontendNode._handle_model_specific_field_values(field, key, name) FrontendNode._handle_api_key_specific_field_values(field, key, name) @@ -249,4 +249,4 @@ class FrontendNode(BaseModel): if "default" in value: field.value = value["default"] if key == "headers": - field.value = """{'Authorization': 'Bearer '}""" + field.value = """{"Authorization": "Bearer "}""" diff --git a/src/backend/langflow/template/frontend_node/formatter/field_formatters.py b/src/backend/langflow/template/frontend_node/formatter/field_formatters.py index 247f3b421..a67387df7 100644 --- a/src/backend/langflow/template/frontend_node/formatter/field_formatters.py +++ b/src/backend/langflow/template/frontend_node/formatter/field_formatters.py @@ -145,7 +145,7 @@ class HeadersDefaultValueFormatter(FieldFormatter): def format(self, field: TemplateField, name: Optional[str] = None) -> None: key = field.name if key == "headers": - field.value = """{'Authorization': 'Bearer '}""" + field.value = """{"Authorization": "Bearer "}""" class DictCodeFileFormatter(FieldFormatter): diff --git a/src/backend/langflow/utils/util.py b/src/backend/langflow/utils/util.py index bad123480..b563c5973 100644 --- a/src/backend/langflow/utils/util.py +++ b/src/backend/langflow/utils/util.py @@ -431,7 +431,7 @@ def set_headers_value(value: Dict[str, Any]) -> None: """ Sets the value for the 'headers' key. """ - value["value"] = """{'Authorization': 'Bearer '}""" + value["value"] = """{"Authorization": "Bearer "}""" def add_options_to_field( diff --git a/src/frontend/src/contexts/tabsContext.tsx b/src/frontend/src/contexts/tabsContext.tsx index b1ff572aa..79b39ad60 100644 --- a/src/frontend/src/contexts/tabsContext.tsx +++ b/src/frontend/src/contexts/tabsContext.tsx @@ -297,6 +297,12 @@ export function TabsProvider({ children }: { children: ReactNode }) { let id; if (file) { let text = await file.text(); + let fileData = JSON.parse(text); + if (fileData.flows) { + fileData.flows.forEach((flow: FlowType) => { + id = addFlow(flow, newProject); + }); + } // parse the text into a JSON object let flow: FlowType = JSON.parse(text); diff --git a/src/frontend/src/types/components/index.ts b/src/frontend/src/types/components/index.ts index 5e982c33b..7f53ff77f 100644 --- a/src/frontend/src/types/components/index.ts +++ b/src/frontend/src/types/components/index.ts @@ -144,18 +144,18 @@ export type TooltipComponentType = { children: ReactElement; title: string | ReactElement; placement?: - | "bottom-end" - | "bottom-start" - | "bottom" - | "left-end" - | "left-start" - | "left" - | "right-end" - | "right-start" - | "right" - | "top-end" - | "top-start" - | "top"; + | "bottom-end" + | "bottom-start" + | "bottom" + | "left-end" + | "left-start" + | "left" + | "right-end" + | "right-start" + | "right" + | "top-end" + | "top-start" + | "top"; }; export type ProgressBarType = { diff --git a/src/frontend/tests/keypair.spec.ts b/src/frontend/tests/keypair.spec.ts index cd435fe92..73183fed6 100644 --- a/src/frontend/tests/keypair.spec.ts +++ b/src/frontend/tests/keypair.spec.ts @@ -1,42 +1,121 @@ import { expect, test } from "@playwright/test"; test("KeypairListComponent", async ({ page }) => { - await page.goto('http://localhost:3000/'); - await page.waitForTimeout(2000); + await page.goto("http://localhost:3000/"); + await page.waitForTimeout(2000); - await page.locator('//*[@id="new-project-btn"]').click(); - 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.getByPlaceholder("Search").click(); + await page.getByPlaceholder("Search").fill("csv"); - await page.waitForTimeout(2000); + await page.waitForTimeout(2000); - await page.locator('//*[@id="sideCSVLoader"]').dragTo(page.locator('//*[@id="react-flow-id"]')); - await page.mouse.up(); - await page.mouse.down(); + await page + .locator('//*[@id="sideCSVLoader"]') + .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("testtesttesttesttesttest"); + + const plusButtonLocatorNode = page.locator('//*[@id="plusbtn0"]'); + const elementCountNode = await plusButtonLocatorNode.count(); + if (elementCountNode > 0) { + await plusButtonLocatorNode.click(); + } + + await page.locator('//*[@id="keypair1"]').click(); + await page.locator('//*[@id="keypair1"]').fill("testtesttesttest1"); + await page.locator('//*[@id="keypair101"]').click(); + await page.locator('//*[@id="keypair101"]').fill("testtesttesttesttesttest1"); + await page.locator('//*[@id="plusbtn1"]').click(); + + await page.locator('//*[@id="keypair2"]').click(); + await page.locator('//*[@id="keypair2"]').fill("testtesttesttest2"); + await page.locator('//*[@id="keypair102"]').click(); + await page.locator('//*[@id="keypair102"]').fill("testtesttesttesttesttest2"); + + await page.locator('//*[@id="minusbtn1"]').click(); + + const keyPairVerification = page.locator('//*[@id="keypair102"]'); + const elementKeyCount = await keyPairVerification.count(); + + if (elementKeyCount === 0) { + expect(true).toBeTruthy(); + } else { + expect(false).toBeTruthy(); + } + + await page + .locator( + '//*[@id="react-flow-id"]/div[1]/div[1]/div[1]/div/div[2]/div/div/div[1]/div/div[1]/div' + ) + .click(); + await page.locator('//*[@id="advancedIcon"]').click(); + await page.locator('//*[@id="editAdvancedBtn"]').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 + .locator( + '//*[@id="react-flow-id"]/div[1]/div[1]/div[1]/div/div[2]/div/div/div[1]/div/div[1]/div' + ) + .click(); + await page.locator('//*[@id="advancedIcon"]').click(); + await page.locator('//*[@id="editAdvancedBtn"]').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="keypair0"]').click(); - await page.locator('//*[@id="keypair0"]').fill('testtesttesttest'); + await page.locator('//*[@id="keypair0"]').fill("testtesttesttest"); await page.locator('//*[@id="keypair100"]').click(); - await page.locator('//*[@id="keypair100"]').fill('testtesttesttesttesttest'); + await page + .locator('//*[@id="keypair100"]') + .fill("testtesttesttesttesttest"); - const plusButtonLocatorNode = page.locator('//*[@id="plusbtn0"]'); - const elementCountNode = await plusButtonLocatorNode.count(); - if (elementCountNode > 0) { - await plusButtonLocatorNode.click(); + const plusButtonLocator = page.locator('//*[@id="plusbtn0"]'); + const elementCount = await plusButtonLocator.count(); + if (elementCount > 0) { + await plusButtonLocator.click(); } await page.locator('//*[@id="keypair1"]').click(); - await page.locator('//*[@id="keypair1"]').fill('testtesttesttest1'); + await page.locator('//*[@id="keypair1"]').fill("testtesttesttest1"); await page.locator('//*[@id="keypair101"]').click(); - await page.locator('//*[@id="keypair101"]').fill('testtesttesttesttesttest1'); + await page + .locator('//*[@id="keypair101"]') + .fill("testtesttesttesttesttest1"); await page.locator('//*[@id="plusbtn1"]').click(); await page.locator('//*[@id="keypair2"]').click(); - await page.locator('//*[@id="keypair2"]').fill('testtesttesttest2'); + await page.locator('//*[@id="keypair2"]').fill("testtesttesttest2"); await page.locator('//*[@id="keypair102"]').click(); - await page.locator('//*[@id="keypair102"]').fill('testtesttesttesttesttest2'); + await page + .locator('//*[@id="keypair102"]') + .fill("testtesttesttesttesttest2"); await page.locator('//*[@id="minusbtn1"]').click(); @@ -44,416 +123,441 @@ test("KeypairListComponent", async ({ page }) => { const elementKeyCount = await keyPairVerification.count(); if (elementKeyCount === 0) { + await page.locator('//*[@id="saveChangesBtn"]').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(); + + if ( + key1 === "testtesttesttest" && + value1 === "testtesttesttesttesttest" && + key2 === "testtesttesttest2" && + value2 === "testtesttesttesttesttest2" + ) { expect(true).toBeTruthy(); - - } else { + } else { expect(false).toBeTruthy(); - } - - await page.locator('//*[@id="react-flow-id"]/div[1]/div[1]/div[1]/div/div[2]/div/div/div[1]/div/div[1]/div').click(); - await page.locator('//*[@id="advancedIcon"]').click(); - await page.locator('//*[@id="editAdvancedBtn"]').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.locator('//*[@id="react-flow-id"]/div[1]/div[1]/div[1]/div/div[2]/div/div/div[1]/div/div[1]/div').click(); - await page.locator('//*[@id="advancedIcon"]').click(); - await page.locator('//*[@id="editAdvancedBtn"]').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="keypair0"]').click(); - await page.locator('//*[@id="keypair0"]').fill('testtesttesttest'); - await page.locator('//*[@id="keypair100"]').click(); - await page.locator('//*[@id="keypair100"]').fill('testtesttesttesttesttest'); - - const plusButtonLocator = page.locator('//*[@id="plusbtn0"]'); - const elementCount = await plusButtonLocator.count(); - if (elementCount > 0) { - await plusButtonLocator.click(); - } - - await page.locator('//*[@id="keypair1"]').click(); - await page.locator('//*[@id="keypair1"]').fill('testtesttesttest1'); - await page.locator('//*[@id="keypair101"]').click(); - await page.locator('//*[@id="keypair101"]').fill('testtesttesttesttesttest1'); - await page.locator('//*[@id="plusbtn1"]').click(); - - await page.locator('//*[@id="keypair2"]').click(); - await page.locator('//*[@id="keypair2"]').fill('testtesttesttest2'); - await page.locator('//*[@id="keypair102"]').click(); - await page.locator('//*[@id="keypair102"]').fill('testtesttesttesttesttest2'); - - await page.locator('//*[@id="minusbtn1"]').click(); - - const keyPairVerification = page.locator('//*[@id="keypair102"]'); - const elementKeyCount = await keyPairVerification.count(); - - if (elementKeyCount === 0) { - await page.locator('//*[@id="saveChangesBtn"]').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(); - - if (key1 === 'testtesttesttest' && value1 === 'testtesttesttesttesttest' && key2 === 'testtesttesttest2' && value2 === 'testtesttesttesttesttest2') { - expect(true).toBeTruthy(); - } - else { - expect(false).toBeTruthy(); - } - } else { - expect(false).toBeTruthy(); - } - + } } else { - expect(false).toBeTruthy(); + expect(false).toBeTruthy(); } + } else { + expect(false).toBeTruthy(); + } }); test("FloatComponent", async ({ page }) => { - await page.goto('http://localhost:3000/'); - await page.waitForTimeout(2000); + await page.goto("http://localhost:3000/"); + await page.waitForTimeout(2000); - await page.locator('//*[@id="new-project-btn"]').click(); - 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.getByPlaceholder("Search").click(); + await page.getByPlaceholder("Search").fill("llamacpp"); - await page.waitForTimeout(2000); + await page.waitForTimeout(2000); - await page.locator('//*[@id="sideLlamaCpp"]').dragTo(page.locator('//*[@id="react-flow-id"]')); - await page.mouse.up(); - await page.mouse.down(); + await page + .locator('//*[@id="sideLlamaCpp"]') + .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 != "2") { + 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 != "-2") { + expect(false).toBeTruthy(); + } + + await page + .locator( + '//*[@id="react-flow-id"]/div[1]/div[1]/div[1]/div/div[2]/div/div/div[1]/div/div[1]/div' + ) + .click(); + await page.locator('//*[@id="editAdvancedIcon"]').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(); + + // showmetadata + await page.locator('//*[@id="showmetadata"]').click(); + expect( + await page.locator('//*[@id="showmetadata"]').isChecked() + ).toBeTruthy(); + + // showmodel_kwargs + await page.locator('//*[@id="showmodel_kwargs"]').click(); + expect( + await page.locator('//*[@id="showmodel_kwargs"]').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(); + + // showmetadata + await page.locator('//*[@id="showmetadata"]').click(); + expect(await page.locator('//*[@id="showmetadata"]').isChecked()).toBeFalsy(); + + // showmodel_kwargs + await page.locator('//*[@id="showmodel_kwargs"]').click(); + expect( + await page.locator('//*[@id="showmodel_kwargs"]').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 + .locator( + '//*[@id="react-flow-id"]/div[1]/div[1]/div[1]/div/div[2]/div/div/div[1]/div/div[1]/div' + ) + .click(); + await page.locator('//*[@id="editAdvancedIcon"]').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'); + await page.locator('//*[@id="float-input"]').fill("3"); let value = await page.locator('//*[@id="float-input"]').inputValue(); if (value != "2") { - expect(false).toBeTruthy(); + expect(false).toBeTruthy(); } await page.locator('//*[@id="float-input"]').click(); - await page.locator('//*[@id="float-input"]').fill('-3'); + await page.locator('//*[@id="float-input"]').fill("-3"); value = await page.locator('//*[@id="float-input"]').inputValue(); if (value != "-2") { - expect(false).toBeTruthy(); - } - - - await page.locator('//*[@id="react-flow-id"]/div[1]/div[1]/div[1]/div/div[2]/div/div/div[1]/div/div[1]/div').click(); - await page.locator('//*[@id="editAdvancedIcon"]').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(); - - // showmetadata - await page.locator('//*[@id="showmetadata"]').click(); - expect(await page.locator('//*[@id="showmetadata"]').isChecked()).toBeTruthy(); - - // showmodel_kwargs - await page.locator('//*[@id="showmodel_kwargs"]').click(); - expect(await page.locator('//*[@id="showmodel_kwargs"]').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(); - - // showmetadata - await page.locator('//*[@id="showmetadata"]').click(); - expect(await page.locator('//*[@id="showmetadata"]').isChecked()).toBeFalsy(); - - // showmodel_kwargs - await page.locator('//*[@id="showmodel_kwargs"]').click(); - expect(await page.locator('//*[@id="showmodel_kwargs"]').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.locator('//*[@id="react-flow-id"]/div[1]/div[1]/div[1]/div/div[2]/div/div/div[1]/div/div[1]/div').click(); - await page.locator('//*[@id="editAdvancedIcon"]').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 != "2") { - 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 != "-2") { - expect(false).toBeTruthy(); - } + expect(false).toBeTruthy(); } + } });