756582322f8a53fef19e8c24ba902e353ba3623f chmalee Thu Aug 27 14:38:34 2026 -0700 uiTest: shared browser UI test harness, plus an hgTracks example, refs #38188 Co-Authored-By: Claude Opus 5 (1M context) diff --git src/hg/utils/uiTest/sample.hg.uiTest.conf src/hg/utils/uiTest/sample.hg.uiTest.conf new file mode 100644 index 00000000000..ffda8717a5e --- /dev/null +++ src/hg/utils/uiTest/sample.hg.uiTest.conf @@ -0,0 +1,58 @@ +# Sample ~/.hg.uiTest.conf for the browser UI tests. +# +# cp sample.hg.uiTest.conf ~/.hg.uiTest.conf +# chmod 600 ~/.hg.uiTest.conf +# +# This file is OPTIONAL. With no conf file at all, uiTest runs against +# genome-test and skips anything that needs a login or the database. You need +# one when you want to point at your own sandbox, or to log in. +# +# Same format as ~/.hg.conf: name=value, "#" comments, "include " and +# "delete ". It must be mode 600 -- a file whose name starts with "." and +# that allows group or other access is rejected before anything runs, the same +# rule hgConfig.c applies to ~/.hg.conf. +# +# It is a SEPARATE file from ~/.hg.conf on purpose. That one is read by every CGI +# and by hgsql, and test credentials do not belong in that blast radius. + +# Shared targets can live in a group file, so each person keeps only credentials. +# include /hive/groups/browser/uiTest/targets.conf + +default.target = hgwdev-yourUserName +default.account = qa + +# rr, genome-test, hgwdev, hgwbeta and hgwdev- are compiled in, so they +# need no line here. A target. line adds one, or overrides a compiled one. +# These three are the docker QA instances on hgwdev. beta only exists between +# do_final and do_wrapup, so it is normally down, and that is correct. +target.tip = http://127.0.0.1:8081/cgi-bin +target.beta = http://127.0.0.1:8082/cgi-bin +target.rel = http://127.0.0.1:8083/cgi-bin + +# ONE hgLogin ACCOUNT PER PERSON, named Qa. Make yourself one on hgwdev and +# put it here. This is a safety property rather than a preference: a run logs in +# as you, and a hub or a session belongs to whoever's account made it, so a run +# of yours can never reach a hub or a session somebody else was in the middle of. +account.qa.user = yourUserNameQa +account.qa.passwordCmd = pass show ucsc/yourUserNameQa +# account.qa.password = ... # or this, if you have nowhere better to put it + +# Credentials never go to production. rr defaults to no account whatever +# default.account says, so this line is belt and braces. +target.rr.account = (none) + +# What this machine is allowed to do. A test that declares needs.hgsql or +# needs.write is SKIPPED, not failed, when the machine cannot oblige -- a +# developer with no QA password must never see a red run. +can.hgsql = yes +can.write = yes + +# Where a run leaves its results.json, screenshots and traces. +artifacts = ~/uiTest + +# How long any single wait may take, in milliseconds. +timeout.default = 30000 + +# Playwright lives at /hive/groups/browser/uiTest/pw. Set this only if you keep a +# private copy somewhere else. +# pw.prefix = ~/.uiTestPw