darabos commited on
Commit
253206b
·
1 Parent(s): 9e84b13

Pick file type. Remove waiting from tests.

Browse files
lynxkite-app/web/src/workspace/Workspace.tsx CHANGED
@@ -243,7 +243,7 @@ function LynxKiteFlow() {
243
  state: { workspace: Workspace },
244
  nodes: Node[],
245
  ) {
246
- const title = node.data.title;
247
  let i = 1;
248
  node.id = `${title} ${i}`;
249
  const wnodes = state.workspace.nodes!;
@@ -325,6 +325,15 @@ function LynxKiteFlow() {
325
  y: e.clientY,
326
  });
327
  node.data!.params.file_path = file.name;
 
 
 
 
 
 
 
 
 
328
  addNode(node, state, nodes);
329
  } catch (error) {
330
  setMessage("File upload failed.");
 
243
  state: { workspace: Workspace },
244
  nodes: Node[],
245
  ) {
246
+ const title = node.data?.title;
247
  let i = 1;
248
  node.id = `${title} ${i}`;
249
  const wnodes = state.workspace.nodes!;
 
325
  y: e.clientY,
326
  });
327
  node.data!.params.file_path = file.name;
328
+ if (file.name.includes(".csv")) {
329
+ node.data!.params.file_format = "csv";
330
+ } else if (file.name.includes(".parquet")) {
331
+ node.data!.params.file_format = "parquet";
332
+ } else if (file.name.includes(".json")) {
333
+ node.data!.params.file_format = "json";
334
+ } else if (file.name.includes(".xls")) {
335
+ node.data!.params.file_format = "excel";
336
+ }
337
  addNode(node, state, nodes);
338
  } catch (error) {
339
  setMessage("File upload failed.");
lynxkite-app/web/tests/basic.spec.ts CHANGED
@@ -21,9 +21,6 @@ test("Box creation & deletion per env", async () => {
21
  const envs = await workspace.getEnvs();
22
  for (const env of envs) {
23
  await workspace.setEnv(env);
24
- // TODO: Opening the catalog immediately after setting the env can fail.
25
- // Let's fix this!
26
- await new Promise((resolve) => setTimeout(resolve, 500));
27
  const catalog = await workspace.getCatalog();
28
  expect(catalog).not.toHaveLength(0);
29
  const op = catalog[0];
 
21
  const envs = await workspace.getEnvs();
22
  for (const env of envs) {
23
  await workspace.setEnv(env);
 
 
 
24
  const catalog = await workspace.getCatalog();
25
  expect(catalog).not.toHaveLength(0);
26
  const op = catalog[0];
lynxkite-app/web/tests/examples.spec.ts CHANGED
@@ -17,8 +17,7 @@ test("Pytorch example", async ({ page }) => {
17
  await ws.expectErrorFree();
18
  });
19
 
20
- test.fail("AIMO example", async ({ page }) => {
21
- // Fails because of missing OPENAI_API_KEY
22
  const ws = await Workspace.open(page, "AIMO");
23
  await ws.expectErrorFree();
24
  });
@@ -35,12 +34,6 @@ test("Graph RAG", async ({ page }) => {
35
  await ws.expectErrorFree(process.env.CI ? 2000 : 500);
36
  });
37
 
38
- test.fail("RAG chatbot app", async ({ page }) => {
39
- // Fail due to all operation being unknown
40
- const ws = await Workspace.open(page, "RAG chatbot app");
41
- await ws.expectErrorFree();
42
- });
43
-
44
  test("Airlines demo", async ({ page }) => {
45
  const ws = await Workspace.open(page, "Airlines demo");
46
  await ws.expectErrorFree(process.env.CI ? 10000 : 500);
 
17
  await ws.expectErrorFree();
18
  });
19
 
20
+ test("AIMO example", async ({ page }) => {
 
21
  const ws = await Workspace.open(page, "AIMO");
22
  await ws.expectErrorFree();
23
  });
 
34
  await ws.expectErrorFree(process.env.CI ? 2000 : 500);
35
  });
36
 
 
 
 
 
 
 
37
  test("Airlines demo", async ({ page }) => {
38
  const ws = await Workspace.open(page, "Airlines demo");
39
  await ws.expectErrorFree(process.env.CI ? 10000 : 500);
lynxkite-app/web/tests/lynxkite.ts CHANGED
@@ -59,7 +59,6 @@ export class Workspace {
59
  // Avoid overlapping with existing nodes
60
  const numNodes = allBoxes.length || 1;
61
  await this.page.mouse.wheel(0, numNodes * 400);
62
- await new Promise((resolve) => setTimeout(resolve, 200));
63
  }
64
 
65
  await this.page.locator(".ws-name").click();
@@ -74,9 +73,9 @@ export class Workspace {
74
  async getCatalog() {
75
  await this.page.locator(".ws-name").click();
76
  await this.page.keyboard.press("/");
77
- const catalog = await this.page
78
- .locator(".node-search .matches .search-result")
79
- .allInnerTexts();
80
  // Dismiss the catalog menu
81
  await this.page.keyboard.press("Escape");
82
  await expect(this.page.locator(".node-search")).not.toBeVisible();
@@ -153,11 +152,6 @@ export class Workspace {
153
  }
154
 
155
  async expectErrorFree(executionWaitTime?) {
156
- // TODO: Workaround, to account for workspace execution. Once
157
- // we have a load indicator we can use that instead.
158
- await new Promise((resolve) =>
159
- setTimeout(resolve, executionWaitTime ? executionWaitTime : 500),
160
- );
161
  await expect(this.getBoxes().locator(".error").first()).not.toBeVisible();
162
  }
163
 
@@ -188,7 +182,7 @@ export class Splash {
188
  }
189
 
190
  workspace(name: string) {
191
- return this.page.getByRole("link", { name: name });
192
  }
193
 
194
  getEntry(name: string) {
 
59
  // Avoid overlapping with existing nodes
60
  const numNodes = allBoxes.length || 1;
61
  await this.page.mouse.wheel(0, numNodes * 400);
 
62
  }
63
 
64
  await this.page.locator(".ws-name").click();
 
73
  async getCatalog() {
74
  await this.page.locator(".ws-name").click();
75
  await this.page.keyboard.press("/");
76
+ const results = this.page.locator(".node-search .matches .search-result");
77
+ await expect(results.first()).toBeVisible();
78
+ const catalog = await results.allInnerTexts();
79
  // Dismiss the catalog menu
80
  await this.page.keyboard.press("Escape");
81
  await expect(this.page.locator(".node-search")).not.toBeVisible();
 
152
  }
153
 
154
  async expectErrorFree(executionWaitTime?) {
 
 
 
 
 
155
  await expect(this.getBoxes().locator(".error").first()).not.toBeVisible();
156
  }
157
 
 
182
  }
183
 
184
  workspace(name: string) {
185
+ return this.page.getByRole("link", { name: name, exact: true });
186
  }
187
 
188
  getEntry(name: string) {