From c751d2bd1b6065881d33e14186cc60c44577b58a Mon Sep 17 00:00:00 2001 From: rajeshreeputra Date: Thu, 9 Jan 2025 15:03:14 +0530 Subject: [PATCH] ACMS-000: Add chrome support to run functional javascript test locally with ddev. --- .ddev/config.selenium-standalone-chrome.yaml | 29 +++++++++++++++++ .ddev/docker-compose.chromedriver.yml | 15 --------- .ddev/docker-compose.selenium-chrome.yaml | 34 ++++++++++++++++++++ 3 files changed, 63 insertions(+), 15 deletions(-) create mode 100644 .ddev/config.selenium-standalone-chrome.yaml delete mode 100644 .ddev/docker-compose.chromedriver.yml create mode 100644 .ddev/docker-compose.selenium-chrome.yaml diff --git a/.ddev/config.selenium-standalone-chrome.yaml b/.ddev/config.selenium-standalone-chrome.yaml new file mode 100644 index 000000000..61e40f976 --- /dev/null +++ b/.ddev/config.selenium-standalone-chrome.yaml @@ -0,0 +1,29 @@ +#ddev-generated +# Remove the line above if you don't want this file to be overwritten when you run +# ddev get ddev/ddev-selenium-standalone-chrome +# +# This file comes from https://github.com/ddev/ddev-selenium-standalone-chrome +# +web_environment: + - BROWSERTEST_OUTPUT_DIRECTORY=/tmp + - BROWSERTEST_OUTPUT_BASE_URL=${DDEV_PRIMARY_URL} + - SIMPLETEST_BASE_URL=http://web + - SIMPLETEST_DB=mysql://db:db@db/db + # Use disable-dev-shm-usage instead of setting shm_usage + # https://developers.google.com/web/tools/puppeteer/troubleshooting#tips + # The format of chromeOptions is defined at https://chromedriver.chromium.org/capabilities + - MINK_DRIVER_ARGS_WEBDRIVER=[\"chrome\", {\"browserName\":\"chrome\",\"goog:chromeOptions\":{\"w3c\":false,\"args\":[\"--disable-gpu\",\"--headless\", \"--no-sandbox\", \"--disable-dev-shm-usage\"]}}, \"http://selenium-chrome:4444/wd/hub\"] + # Nightwatch + - DRUPAL_TEST_BASE_URL=http://web + - DRUPAL_TEST_DB_URL=mysql://db:db@db/db + - DRUPAL_TEST_WEBDRIVER_HOSTNAME=selenium-chrome + - DRUPAL_TEST_WEBDRIVER_PORT=4444 + - DRUPAL_TEST_WEBDRIVER_PATH_PREFIX=/wd/hub + - DRUPAL_TEST_WEBDRIVER_CHROME_ARGS=--disable-gpu --headless --no-sandbox --disable-dev-shm-usage + - DRUPAL_TEST_CHROMEDRIVER_AUTOSTART=false + - DRUPAL_NIGHTWATCH_SEARCH_DIRECTORY=../ + - DRUPAL_NIGHTWATCH_IGNORE_DIRECTORIES=node_modules,vendor,.*,sites/*/files,sites/*/private,sites/simpletest + - DRUPAL_NIGHTWATCH_OUTPUT=reports/nightwatch + # DTT + - DTT_BASE_URL=http://web + - DTT_MINK_DRIVER_ARGS=[\"chrome\", {\"browserName\":\"chrome\",\"goog:chromeOptions\":{\"w3c\":false,\"args\":[\"--disable-gpu\",\"--headless\", \"--no-sandbox\", \"--disable-dev-shm-usage\"]}}, \"http://selenium-chrome:4444/wd/hub\"] diff --git a/.ddev/docker-compose.chromedriver.yml b/.ddev/docker-compose.chromedriver.yml deleted file mode 100644 index 2243f3665..000000000 --- a/.ddev/docker-compose.chromedriver.yml +++ /dev/null @@ -1,15 +0,0 @@ -services: - chromedriver: - container_name: ddev-${DDEV_SITENAME}-chromedriver - image: drupalci/chromedriver:production - labels: - # These labels ensure this service is discoverable by ddev - com.ddev.site-name: ${DDEV_SITENAME} - com.ddev.approot: $DDEV_APPROOT - com.ddev.app-url: $DDEV_URL - # This links the Chromedriver service to the web service defined - # in the main docker-compose.yml, allowing applications running - # in the web service to access the driver at `chromedriver`. - web: - links: - - chromedriver:$DDEV_HOSTNAME diff --git a/.ddev/docker-compose.selenium-chrome.yaml b/.ddev/docker-compose.selenium-chrome.yaml new file mode 100644 index 000000000..bf4911204 --- /dev/null +++ b/.ddev/docker-compose.selenium-chrome.yaml @@ -0,0 +1,34 @@ +#ddev-generated +# Remove the line above if you don't want this file to be overwritten when you run +# ddev get ddev/ddev-selenium-standalone-chrome +# +# This file comes from https://github.com/ddev/ddev-selenium-standalone-chrome +# +services: + selenium-chrome: + image: seleniarm/standalone-chromium:4.1.4-20220429 + container_name: ddev-${DDEV_SITENAME}-selenium-chrome + expose: + # The internal noVNC port, which operates over HTTP so it can be exposed + # through the router. + - 7900 + environment: + - VIRTUAL_HOST=$DDEV_HOSTNAME + - HTTPS_EXPOSE=7900:7900 + - HTTP_EXPOSE=7910:7900 + - VNC_NO_PASSWORD=1 + external_links: + - ddev-router:${DDEV_SITENAME}.${DDEV_TLD} + # To enable VNC access for traditional VNC clients like macOS "Screen Sharing", + # uncomment the following two lines. + #ports: + # - "5900:5900" + labels: + com.ddev.site-name: ${DDEV_SITENAME} + com.ddev.approot: $DDEV_APPROOT + volumes: + - ".:/mnt/ddev_config" + + web: + links: + - selenium-chrome