From 75b5e4262b008359ecb8f1ca7817e98f3d629668 Mon Sep 17 00:00:00 2001 From: Anchel123 <110421452+Anchel123@users.noreply.github.com> Date: Thu, 4 Apr 2024 16:58:24 +0300 Subject: [PATCH 1/3] add plawright basic tests --- e2e/createGraph.spec.ts | 13 +++++++++++++ e2e/graph.spec.ts | 29 +++++++++++++++++++++++++++++ e2e/homePage.spec.ts | 18 ++++++++++++++++++ e2e/login.spec.ts | 11 +++++------ e2e/simple.spec.ts | 15 --------------- 5 files changed, 65 insertions(+), 21 deletions(-) create mode 100644 e2e/createGraph.spec.ts create mode 100644 e2e/graph.spec.ts create mode 100644 e2e/homePage.spec.ts delete mode 100644 e2e/simple.spec.ts diff --git a/e2e/createGraph.spec.ts b/e2e/createGraph.spec.ts new file mode 100644 index 00000000..439b830d --- /dev/null +++ b/e2e/createGraph.spec.ts @@ -0,0 +1,13 @@ +import { test } from '@playwright/test'; + +test('create graph', async ({ page }) => { + await page.goto('http://localhost:3000/login'); + await page.getByRole('button', { name: 'Connect' }).click(); + await page.getByText('Select Graph...').click(); + await page.getByRole('button', { name: 'Create new Graph...' }).click(); + await page.getByPlaceholder('Graph name').fill('falkorDB'); + await page.getByRole('button', { name: 'Create' }).click(); + await page.getByPlaceholder('MATCH (n) OPTIONAL MATCH (n').fill('CREATE (:Rider {name:\'Valentino Rossi\'})-[:rides]->(:Team {name:\'Yamaha\'}), (:Rider {name:\'Dani Pedrosa\'})-[:rides]->(:Team {name:\'Honda\'}), (:Rider {name:\'Andrea Dovizioso\'})-[:rides]->(:Team {name:\'Ducati\'})'); + await page.getByRole('button').first().click(); + await page.getByText('falkorDB').click(); +}); \ No newline at end of file diff --git a/e2e/graph.spec.ts b/e2e/graph.spec.ts new file mode 100644 index 00000000..5d97bf5e --- /dev/null +++ b/e2e/graph.spec.ts @@ -0,0 +1,29 @@ +import { expect, test } from '@playwright/test'; + +test.beforeEach(async ({ page }) => { + await page.goto('http://localhost:3000/login'); + await page.getByRole('button', { name: 'Connect' }).click(); + await page.getByText('Select Graph...').click(); + await page.getByRole('button', { name: 'Create new Graph...' }).click(); + await page.getByPlaceholder('Graph name').fill('falkorDB'); + await page.getByRole('button', { name: 'Create' }).click(); + await page.waitForTimeout(2000) + await page.getByPlaceholder('MATCH (n) OPTIONAL MATCH (n)').fill('CREATE (:Rider {name:\'Valentino Rossi\'})-[:rides]->(:Team {name:\'Yamaha\'}), (:Rider {name:\'Dani Pedrosa\'})-[:rides]->(:Team {name:\'Honda\'}), (:Rider {name:\'Andrea Dovizioso\'})-[:rides]->(:Team {name:\'Ducati\'})'); + await page.getByRole('button').first().click(); + await page.getByPlaceholder('MATCH (n) OPTIONAL MATCH (n)').click({ clickCount: 3 }); + await page.getByPlaceholder('MATCH (n) OPTIONAL MATCH (n)').fill(''); +}); + +test('delete graph', async ({ page }) => { + await page.getByRole('button').nth(1).click(); + await page.getByRole('button', { name: 'Delete graph' }).click(); + await page.getByRole('button', { name: 'Delete' }).click(); + await page.getByText('Select Graph...').click() +}); + +test('tabs navigation', async ({ page }) => { + await page.getByRole('button').first().click(); + await page.getByRole('tab', {name: 'Graph'}).click(); + await page.getByRole('tab', {name: 'Data'}).first().click(); + await page.getByRole('tab', {name: 'Metadata'}).click(); +}); \ No newline at end of file diff --git a/e2e/homePage.spec.ts b/e2e/homePage.spec.ts new file mode 100644 index 00000000..76cba0ac --- /dev/null +++ b/e2e/homePage.spec.ts @@ -0,0 +1,18 @@ +import { expect, test } from '@playwright/test'; + +test.beforeEach(async ({ page }) => { + await page.goto('http://localhost:3000/'); +}); + +test('connect', async ({ page }) => { + await page.getByRole('button').click(); + await page.waitForURL('http://localhost:3000'); + expect(page.url()).toBe('http://localhost:3000'); + +}); + +test('themes', async ({ page }) => { + await page.getByLabel('system mode').click(); + await page.getByLabel('dark mode').click(); + expect(page.getByLabel('light mode')).toBeVisible(); +}); \ No newline at end of file diff --git a/e2e/login.spec.ts b/e2e/login.spec.ts index 97a1fa66..271f2331 100644 --- a/e2e/login.spec.ts +++ b/e2e/login.spec.ts @@ -1,12 +1,11 @@ -import { test } from '@playwright/test'; +import { expect, test } from '@playwright/test'; test.beforeEach(async ({ page }) => { - await page.goto('http://localhost:3000/'); + await page.goto('http://localhost:3000/login'); }); -test('connect', async ({ page }) => { +test('login', async ({ page }) => { await page.getByRole('button', { name: 'Connect' }).click(); - await page.getByRole('button', { name: 'Connect' }).click(); - - await page.getByText('Select Graph...').click(); + await page.waitForURL("http://localhost:3000/graph"); + expect(page.url()).toBe("http://localhost:3000/graph"); }); \ No newline at end of file diff --git a/e2e/simple.spec.ts b/e2e/simple.spec.ts deleted file mode 100644 index 8fe982c0..00000000 --- a/e2e/simple.spec.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { test, expect } from '@playwright/test'; - -test.beforeEach(async ({ page }) => { - await page.goto('http://localhost:3000/'); -}); - -test('has title', async ({ page }) => { - await expect(page).toHaveTitle(/FalkorDB Browser/); -}); - -test('dark-mode', async ({ page }) => { - await page.getByLabel('system mode').click(); - await page.getByLabel('dark mode').click(); - await page.getByLabel('light mode').click(); -}); \ No newline at end of file From 670124820cce850642608d3b19bdeabb4388e279 Mon Sep 17 00:00:00 2001 From: Anchel123 <110421452+Anchel123@users.noreply.github.com> Date: Mon, 8 Apr 2024 15:59:03 +0300 Subject: [PATCH 2/3] fix create graph test --- e2e/createGraph.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e/createGraph.spec.ts b/e2e/createGraph.spec.ts index 439b830d..531b7af7 100644 --- a/e2e/createGraph.spec.ts +++ b/e2e/createGraph.spec.ts @@ -9,5 +9,5 @@ test('create graph', async ({ page }) => { await page.getByRole('button', { name: 'Create' }).click(); await page.getByPlaceholder('MATCH (n) OPTIONAL MATCH (n').fill('CREATE (:Rider {name:\'Valentino Rossi\'})-[:rides]->(:Team {name:\'Yamaha\'}), (:Rider {name:\'Dani Pedrosa\'})-[:rides]->(:Team {name:\'Honda\'}), (:Rider {name:\'Andrea Dovizioso\'})-[:rides]->(:Team {name:\'Ducati\'})'); await page.getByRole('button').first().click(); - await page.getByText('falkorDB').click(); + await page.getByText('falkorDB', { exact: true }).click(); }); \ No newline at end of file From 06f1fb0a878a7d510753fbbd086e1955758a6d68 Mon Sep 17 00:00:00 2001 From: Anchel123 <110421452+Anchel123@users.noreply.github.com> Date: Mon, 8 Apr 2024 16:26:47 +0300 Subject: [PATCH 3/3] fix tests --- e2e/createGraph.spec.ts | 2 +- e2e/homePage.spec.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/e2e/createGraph.spec.ts b/e2e/createGraph.spec.ts index 531b7af7..d360c665 100644 --- a/e2e/createGraph.spec.ts +++ b/e2e/createGraph.spec.ts @@ -9,5 +9,5 @@ test('create graph', async ({ page }) => { await page.getByRole('button', { name: 'Create' }).click(); await page.getByPlaceholder('MATCH (n) OPTIONAL MATCH (n').fill('CREATE (:Rider {name:\'Valentino Rossi\'})-[:rides]->(:Team {name:\'Yamaha\'}), (:Rider {name:\'Dani Pedrosa\'})-[:rides]->(:Team {name:\'Honda\'}), (:Rider {name:\'Andrea Dovizioso\'})-[:rides]->(:Team {name:\'Ducati\'})'); await page.getByRole('button').first().click(); - await page.getByText('falkorDB', { exact: true }).click(); + await page.getByText("falkorDB").first().click() }); \ No newline at end of file diff --git a/e2e/homePage.spec.ts b/e2e/homePage.spec.ts index 76cba0ac..47a65ada 100644 --- a/e2e/homePage.spec.ts +++ b/e2e/homePage.spec.ts @@ -6,8 +6,8 @@ test.beforeEach(async ({ page }) => { test('connect', async ({ page }) => { await page.getByRole('button').click(); - await page.waitForURL('http://localhost:3000'); - expect(page.url()).toBe('http://localhost:3000'); + await page.waitForURL('http://localhost:3000/login'); + expect(page.url()).toBe('http://localhost:3000/login'); });