Skip to content

E2E Integration Tests

Shailesh Parmar edited this page May 22, 2023 · 17 revisions

OpenMetadata End-to-End Integration Tests

Sign-Up Page for Basic Auth

  1. Users should be able to create and sign in with their email or username
  2. Admin should be able to log in and create a new user with a one-time password. A newly created user should be able to log in with that one-time password
  3. Disabling the sign-up option in the server should disable any signup option from the UI and the API.
  4. Sign-in with an incorrect user or password should throw "Incorrect username or password".

Sign-Up Page After SSO login

  1. User account creation page
  2. user should be able to select a team
  3. Test if only joinable teams are listed
  4. Test if the soft-deleted teams are not listed.
  5. If the team hierarchy is A -> B -> C. and the B team is soft-deleted, we should move the C team to be under A and allow users to join A -> C.
  6. Create a new team and make it joinable and test if that appears in the sign-up process
  7. Create a new team and make it a non-joinable test if that doesn't appear in the sign-up process

Landing Page tests

  1. Landing page should load with Zero errors as a non-admin user
  2. It should have all the assets and their counts correctly on the left side top panel
  3. Recent views should be either be empty if this the new user who logs in, and they should be relevant recent views if the existing user logs in 3.1 Login as a new user, and test if the recent views are empty 3.2 Go to Explore page and look at a new asset (table, pipeline, dashboard, topic, mlmodel) 3.3 All of these should be available in "Recent Views" and should be clickable and go to the respective entity page 3.4 Log out and Log-in, and we should still see the last "Recent Views."

My Data

  1. Assign ownership of an entity to a logged-in user; it should appear on the landing page

  2. Assign ownership to an entity to a team that the logged-in user belongs to; it should appear on the landing page

  3. Assign ownership to the logged-in user for about 20 assets. We should only show 5 in and show "View All" the correct count Example:

image Here, we are showing three assets but View All shows count as 6
  1. Remove ownership, and it should accurately represent the count in My Data

  2. Clicking on any of these entities should take you to the entity page

  3. Clicking on View More should take you to the User Profile -> My Data page

  4. Test if the assets indeed belong to the user and/or their teams

  5. Test if the pagination works on the My Data page in User Profile

Following

  1. Follow an entity and make sure that entity appears on the Landing page under the Following section (right-side)
image
  1. Follow 20 entities, and we should only show 5 in the Follow Section and show "view all" with the correct count
image
  1. Unfollow an entity, and it should accurately represent the count on the landing page "View All"

  2. Clicking on any of these entities should take you to the entity page

  3. Clicking on View More should take you to the User Profile -> "Following" page

  4. Test if the assets are indeed followed by the user and/or their teams

  5. Test if the pagination works on the Follow page in the User Profile

Test for Bots

  • The user Should not be able to delete the ingestion bot
  • The user Should be able to create a bot with OpenMetadata JWT AuthMechanism with token expiry.
  • Created bot should match the expiry time and AuthMechanism
  • Created bot should match the display name and description on the bot listing as well as on the bot details page
  • The user should be able to revoke the token if already present
  • The user should be able to Edit the Token expiry and verify the same
  • The user should be able to set all these expiration
  • 1 Hour
  • 1 Day
  • 7 Days
  • 30 Days
  • 60 Days
  • 90 Days
  • Unlimited Days
  • The user should be able to delete the created bot

Test for MyData

  • MyData Page should render properly with all the required components
  • Recent view section and redirection should work for the table entity
  • Recent view section and redirection should work for the topic entity
  • Recent view section and redirection should work for the dashboard entity
  • Recent view section and redirection should work for the pipeline entity
  • Listing Recent search terms with redirection should work properly
  • My data, following & feed section should work properly for the table entity
  • My data, following & feed section should work properly for the topic entity
  • My data, following & feed section should work properly for the dashboard entity
  • My data, following & feed section should work properly for the pipeline entity
  • My data and the following section, CTA should work properly (Skipped)

Test for basic auth

  • Signup and Login with signed-up credentials
  • Sign in using invalid credentials
  • Forgot password and login with a new password

Test for Custom Properties

  • Add update and delete Integer custom properties
  • Edit created a property for all entities
  • Delete created property for all entities
  • Add update and delete String custom properties
  • Add update and delete Markdown custom properties

Data Quality

  • Ingest MySQL data
  • Ingest profiler data
  • Check if the profiler is ingested properly
  • Add table test case with new test suite
  • Edit Test Case
  • Delete Test Case
  • Add Column test case
  • Edit column Test Case
  • Delete column Test Case
  • Delete the Test suite
  • Delete MySQL service
  • Profiler matrix and test case graph should be visible
  • SQL query should be visible while editing the test case

Entity details page

  • Add Owner and Tier for entity
  • Remove Owner and Tier for entity
  • Add and check the active announcements for the entity
  • Delete entity flow should work properly
  • Edit lineage for all entities
  • Add announcement and verify the active announcement for the entity

Glossary

  • Create a new glossary flow that should work properly
  • Verify added glossary details
  • Create glossary terms that should work properly
  • Updating data of the glossary should work properly
  • Update glossary term synonyms
  • Update glossary term reference and related terms
  • Updating descriptions and tags of glossary terms should work properly
  • Assets Tab should work properly
  • Remove Glossary term from entity should work properly
  • Delete glossary term should work properly
  • Delete glossary should work properly

Policies

  • Default Policies and Roles should be displayed
  • Add new policy
  • Edit policy description
  • Add a new rule
  • Edit rule name for created Rule
  • Delete new rule
  • Delete the last rule and validate
  • Delete created policy

Roles

  • Default Roles and Policies should be displayed
  • Add a new role and check all tab data
  • Add a new role without selecting data
  • Edit created role
  • Add a new policy to the created role
  • Remove added policy from the created role
  • Check if the last policy is not removed
  • Delete created Role
  • Create and Assign a role to a user

Service

  • Add the service
  • Update service description and owner
  • The service doc panel should render and fetch the selected service markdown doc file.
  • Should highlight the field section when the field is focused.

Tags

  • Required Details should be available
  • Add new tag category flow
  • Add new tag flow
  • Use a newly created tag for any entity
  • Check the Usage of the tag and it should redirect to explore page with the tags filter
  • Delete Tag flow

Team

  • Add a new team
  • Add owner to created team
  • Add user to created team
  • Join team should work properly
  • Should show the email for created team
  • Update the email of a created team
  • Update the display name for the created team
  • Update description for created team
  • Leave team flow should work properly
  • Permanently deleting soft deleted team
  • Permanently deleting a team without soft deleting
  • Add a group team type and assign it as an owner of the entity
  • Check the total count of users and teams

Teams Hierarchy

  • Add nested teams and test TeamsSelectable
  • Check the hierarchy in Add User page

Users

  • Add new User
  • Soft delete user
  • Restore soft deleted user
  • Permanently Delete Soft Deleted User

Admin

  • Add a new Admin
  • Soft delete Admin
  • Restore soft deleted admin
  • Permanently Delete Soft Deleted admin

Collect PageView

  • Visiting the page should trigger collect API

Logout Flow

  • After logging out the user invalidate the token

Bigquery, Glue, Kafka, Metabase, Mysql, Snowflake, Superset, MlFlow, S3, Airflow

  • Add and ingest data
  • Update table description and verify description after re-run
  • Edit and validate the owner
  • delete created service

Redshift

  • Add ingest data with DBT
  • Verify DBT is ingested properly
  • Edit and validate the owner
  • delete created service

Postgres

  • Trigger select query to check the Queries tab
  • Add and ingest data
  • Add Usage ingestion
  • Update table description and verify description after re-run
  • Verify if usage is ingested properly
  • Edit and validate the owner
  • delete created service

Alerts

  • Create a new alert for all data assets
  • Edit description for created Alert
  • Delete created alert
  • Create a new alert for all data assets and multiple filters
  • Delete created alert
  • Create a new alert for the Test case data asset
  • Delete test case alert
  • Create alert for Webhook/Slack/MSteams
  • Delete created alert for Webhook/Slack/MSteams

Advanced Search

  • Advance search should work properly for all fields ( owner, tier, tags, service, and more )
  • Advance search should work properly for Add Group functionality
  • Advance search should work properly for Add Rule Functionality

Add and remove the owner

  • For Table, Topic, Dashboard, Pipeline, and MLmodal
  • Database details page
  • Schema details page
  • Service details page
  • Teams details page
  • Test suite details page
  • Glossary page
  • GlossaryTerm page

Add and remove the Tier

  • For Table, Topic, Dashboard, Pipeline, and MLmodal
  • Database details page

Data Insight Report

  • Should have default alert with proper data
  • Should Update the alert
  • Should Update the alert to default values

Custom Logo

  • Should have a default config
  • Should update the config
  • Should Show the updated config

Update displayName

  • Table
  • Topic
  • Dashboard
  • pipeline
  • mlModel
  • container
  • dataModel
  • schema details page
  • database details page
  • database service
  • messaging service
  • dashboard service
  • pipeline service
  • ml model service
  • storage service