Files
openobserve/tests/ui-testing/playwright-tests/join.spec.js
T
Shyam Panjiyar f003d32308 test: join automation updated (#5416)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
	- Added a quick mode toggle button on the Logs Page.
- Introduced new methods for validating log displays and error messages.
- New test cases to verify the functionality of toggling quick mode and
interacting with interesting fields.

- **Bug Fixes**
- Enhanced test scenarios to ensure correct display of streams and count
queries during log searches.
	- Improved verification of results after executing queries.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-12-31 11:16:42 +05:30

162 lines
5.3 KiB
JavaScript

import { test, expect } from "./baseFixtures";
import { LoginPage } from '../pages/loginPage';
import { LogsPage } from '../pages/logsPage.js';
import { IngestionPage } from '../pages/ingestionPage';
test.describe.configure({ mode: 'parallel' });
test.describe("Join for logs", () => {
let loginPage, logsPage, ingestionPage;
test.beforeEach(async ({ page }) => {
loginPage = new LoginPage(page);
ingestionPage = new IngestionPage(page);
logsPage = new LogsPage(page);
await loginPage.gotoLoginPage();
// await loginPage.loginAsInternalUser();
await loginPage.login(); // Login as root user
await ingestionPage.ingestion();
await ingestionPage.ingestionJoin();
});
test("Run query after selecting two streams", async ({ page }) => {
await logsPage.navigateToLogs();
await logsPage.selectIndexAndStreamJoin();
await logsPage.displayTwoStreams();
await logsPage.selectRunQuery();
});
test("Run query after selecting two streams and SQL Mode On", async ({ page }) => {
await logsPage.navigateToLogs();
await logsPage.selectIndexAndStreamJoin();
await logsPage.enableSQLMode();
await logsPage.selectRunQuery();
await logsPage.displayTwoStreams();
});
test("Run query after selecting two streams, selecting field and SQL Mode On", async ({ page }) => {
await logsPage.navigateToLogs();
await logsPage.selectIndexAndStreamJoin();
await logsPage.kubernetesContainerName();
await logsPage.enableSQLMode();
await logsPage.selectRunQuery();
await logsPage.validateResult();
});
test("Run query after selecting two streams, SQL Mode On and entering join queries", async ({ page }) => {
await logsPage.navigateToLogs();
await logsPage.selectIndexAndStreamJoin();
await logsPage.kubernetesContainerNameJoin();
await logsPage.enableSQLMode();
await logsPage.selectRunQuery();
await logsPage.displayCountQuery();
await logsPage.validateResult();
});
test("Run query after selecting two streams, SQL Mode On and entering join limit", async ({ page }) => {
await logsPage.navigateToLogs();
await logsPage.selectIndexAndStreamJoin();
await logsPage.kubernetesContainerNameJoinLimit();
await logsPage.enableSQLMode();
await logsPage.selectRunQuery();
await logsPage.validateResult();
});
test("Run query after selecting two streams, SQL Mode On and entering join like", async ({ page }) => {
await logsPage.navigateToLogs();
await logsPage.selectIndexAndStreamJoin();
await logsPage.kubernetesContainerNameJoinLike();
await logsPage.enableSQLMode();
await logsPage.selectRunQuery();
});
test("Run query after selecting two streams, SQL Mode On and entering Left join queries", async ({ page }) => {
await logsPage.navigateToLogs();
await logsPage.selectIndexAndStreamJoin();
await logsPage.kubernetesContainerNameLeftJoin();
await logsPage.enableSQLMode();
await logsPage.selectRunQuery();
await logsPage.validateResult();
});
test("Run query after selecting two streams, SQL Mode On and entering Right join queries", async ({ page }) => {
await logsPage.navigateToLogs();
await logsPage.selectIndexAndStreamJoin();
await logsPage.kubernetesContainerNameRightJoin();
await logsPage.enableSQLMode();
await logsPage.selectRunQuery();
await logsPage.validateResult();
});
test("Run query after selecting two streams, SQL Mode On and entering Full join queries", async ({ page }) => {
await logsPage.navigateToLogs();
await logsPage.selectIndexAndStreamJoin();
await logsPage.kubernetesContainerNameFullJoin();
await logsPage.enableSQLMode();
await logsPage.selectRunQuery();
await logsPage.validateResult();
});
test("Click on interesting field icon and display field in editor", async ({ page }) => {
await logsPage.navigateToLogs();
await logsPage.selectIndexAndStreamJoin();
await logsPage.enableSQLMode();
await logsPage.clickQuickModeToggle();
await logsPage.selectRunQuery();
await logsPage.clickInterestingFields();
await logsPage.validateInterestingFields();
});
test("Click on interesting field icon and display query in editor", async ({ page }) => {
await logsPage.navigateToLogs();
await logsPage.selectIndexAndStreamJoin();
await logsPage.enableSQLMode();
await logsPage.clickQuickModeToggle();
await logsPage.selectRunQuery();
await logsPage.clickInterestingFields();
await logsPage.validateInterestingFieldsQuery();
});
test("Add/remove interesting field removes it from editor and results too", async ({ page }) => {
await logsPage.navigateToLogs();
await logsPage.selectIndexAndStreamJoin();
await logsPage.enableSQLMode();
await logsPage.clickQuickModeToggle();
await logsPage.selectRunQuery();
await logsPage.clickInterestingFields();
await logsPage.addRemoveInteresting();
});
});