#!/usr/bin/env bash set -xeo pipefail . scripts/grafana-server/variables if ((BASH_VERSINFO[0] < 4)); then echo "Bash ver >= 4 is needed to run this script" echo "Please upgrade your bash - run 'brew install bash' if you use Homebrew on MacOS" exit 1; fi HOST=${HOST:-$DEFAULT_HOST} PORT=${PORT:-$DEFAULT_PORT} echo -e "Starting Cypress scenarios" args=("$@") CMD="start" PARAMS="" declare -A env=( [BASE_URL]=${BASE_URL:-"http://$HOST:$PORT"} [SLOWMO]=0 ) testFilesForSingleSuite="*.spec.ts" declare -A cypressConfig=( [integrationFolder]=../../e2e [screenshotsFolder]=../../e2e/"${args[0]}"/screenshots [videosFolder]=../../e2e/"${args[0]}"/videos [fileServerFolder]=./cypress [testFiles]=*-suite/*spec.ts [defaultCommandTimeout]=30000 [viewportWidth]=1920 [viewportHeight]=1080 [trashAssetsBeforeRuns]=false [videoUploadOnPasses]=false ) cd packages/grafana-e2e case "$1" in "debug") echo -e "Debug mode" env[SLOWMO]=1 PARAMS="--no-exit" ;; "dev") echo "Dev mode" CMD="open" ;; "benchmark") echo "Benchmark" PARAMS="--headed" CMD="start-benchmark" env[BENCHMARK_PLUGIN_ENABLED]=true env[BENCHMARK_PLUGIN_RESULTS_FOLDER]=../../e2e/benchmarks/"${args[1]}"/results cypressConfig[video]=false cypressConfig[integrationFolder]=../../e2e/benchmarks/"${args[1]}" cypressConfig[screenshotsFolder]=../../e2e/benchmarks/"${args[1]}"/screenshots cypressConfig[testFiles]=$testFilesForSingleSuite ;; "") ;; *) cypressConfig[integrationFolder]=../../e2e/"${args[0]}" cypressConfig[testFiles]=$testFilesForSingleSuite ;; esac function join () { local -n map=$1 local delimiter="," local res="" for key in "${!map[@]}" do value=${map[$key]} if [ -z "${res}" ]; then res=$key=$value else res=$res$delimiter$key=$value fi done echo "$res" } yarn $CMD --env "$(join env)" \ --config "$(join cypressConfig)" \ $PARAMS