ci: add selenium test for emqx docs link in dashboard
This commit is contained in:
parent
04ba2aaf8a
commit
c4fd94c7c5
|
@ -47,6 +47,9 @@ jobs:
|
||||||
echo "_EMQX_DOCKER_IMAGE_TAG=$_EMQX_DOCKER_IMAGE_TAG" >> $GITHUB_ENV
|
echo "_EMQX_DOCKER_IMAGE_TAG=$_EMQX_DOCKER_IMAGE_TAG" >> $GITHUB_ENV
|
||||||
- name: dashboard tests
|
- name: dashboard tests
|
||||||
working-directory: ./scripts/ui-tests
|
working-directory: ./scripts/ui-tests
|
||||||
|
env:
|
||||||
|
EMQX_VERSION: ${{ inputs.version-emqx }}
|
||||||
|
EMQX_ENTERPRISE_VERSION: ${{ inputs.version-emqx-enterprise }}
|
||||||
run: |
|
run: |
|
||||||
set -eu
|
set -eu
|
||||||
docker compose up --abort-on-container-exit --exit-code-from selenium
|
docker compose up --abort-on-container-exit --exit-code-from selenium
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import os
|
||||||
import time
|
import time
|
||||||
import unittest
|
import unittest
|
||||||
import pytest
|
import pytest
|
||||||
|
@ -73,3 +74,25 @@ def test_log(driver, login, dashboard_url):
|
||||||
label = driver.find_element(By.XPATH, "//div[@id='app']//form//label[contains(., 'Time Offset')]")
|
label = driver.find_element(By.XPATH, "//div[@id='app']//form//label[contains(., 'Time Offset')]")
|
||||||
assert driver.find_elements(By.ID, label.get_attribute("for"))
|
assert driver.find_elements(By.ID, label.get_attribute("for"))
|
||||||
|
|
||||||
|
def test_docs_link(driver, login, dashboard_url):
|
||||||
|
dest_url = urljoin(dashboard_url, "/#/dashboard/overview")
|
||||||
|
driver.get(dest_url)
|
||||||
|
ensure_current_url(driver, dest_url)
|
||||||
|
xpath_link_help = "//div[@id='app']//div[@class='nav-header']//a[contains(@class, 'link-help')]"
|
||||||
|
link_help = driver.find_element(By.XPATH, xpath_link_help)
|
||||||
|
driver.execute_script("arguments[0].click();", link_help)
|
||||||
|
|
||||||
|
emqx_name = os.getenv("EMQX_NAME")
|
||||||
|
emqx_community_version = os.getenv("EMQX_COMMUNITY_VERSION")
|
||||||
|
emqx_enterprise_version = os.getenv("EMQX_ENTERPRISE_VERSION")
|
||||||
|
if emqx_name == 'emqx-enterprise':
|
||||||
|
emqx_version = f"v{emqx_enterprise_version}"
|
||||||
|
docs_base_url = "https://docs.emqx.com/en/enterprise"
|
||||||
|
else:
|
||||||
|
emqx_version = f"v{emqx_community_version}"
|
||||||
|
docs_base_url = "https://www.emqx.io/docs/en"
|
||||||
|
|
||||||
|
emqx_version = ".".join(emqx_version.split(".")[:2])
|
||||||
|
docs_url = f"{docs_base_url}/{emqx_version}"
|
||||||
|
xpath = f"//div[@id='app']//div[@class='nav-header']//a[@href[starts-with(.,'{docs_url}')]]"
|
||||||
|
assert driver.find_element(By.XPATH, xpath)
|
||||||
|
|
|
@ -9,6 +9,10 @@ services:
|
||||||
selenium:
|
selenium:
|
||||||
shm_size: '2gb'
|
shm_size: '2gb'
|
||||||
image: ghcr.io/emqx/selenium-chrome:latest
|
image: ghcr.io/emqx/selenium-chrome:latest
|
||||||
|
environment:
|
||||||
|
EMQX_NAME: ${EMQX_NAME}
|
||||||
|
EMQX_COMMUNITY_VERSION: ${EMQX_VERSION}
|
||||||
|
EMQX_ENTERPRISE_VERSION: ${EMQX_ENTERPRISE_VERSION}
|
||||||
volumes:
|
volumes:
|
||||||
- ./:/app
|
- ./:/app
|
||||||
depends_on:
|
depends_on:
|
||||||
|
|
Loading…
Reference in New Issue