58fa228f2f91ae8c6a5c62109e904f57e1f9a66d braney Wed Sep 30 11:03:02 2026 -0700 docent regression scripts for nineteen v504 tickets, and their registry rows Each script watches one v504 fix. Fourteen fail on v503 (ts park 38316) and pass on genome-test (release-ab). rm38313 and rm38393 are sandbox-ab, because no release predates their fix. rm37984, rm38233 and rm38384 are assertion-only; each header says why. The registry now names the script in the docent column for these tickets, and has new rows for #38157 and #38393. #38275 stays unwatched in the table: the script that watches it is rm37389, which is named for another ticket. refs #20824, #27988, #36292, #37595, #37621, #37929, #37984, #38157, #38192, #38197, #38233, #38254, #38264, #38273, #38313, #38323, #38372, #38384, #38393, #38252, #38391 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> diff --git src/hg/utils/docent/tests/regress/rm38323.docent.yaml src/hg/utils/docent/tests/regress/rm38323.docent.yaml new file mode 100644 index 00000000000..c3c06ce6bfa --- /dev/null +++ src/hg/utils/docent/tests/regress/rm38323.docent.yaml @@ -0,0 +1,66 @@ +# #38323 -- API keys on genome-euro and genome-asia. The API key section of hgHubConnect was +# gated on storeUserFiles as well as showHubApiKey, so a mirror that does not run hub upload +# could never show it, and its Generate and Revoke buttons lived in hgMyData.js, which only +# the hub upload tab loads. This script watches the parts that a login host shows as well: +# the section, the module its buttons now call, and the refusal of a key sync on a site that +# has not turned sync on. It only looks. It never clicks Generate key or Revoke. +# +# Commits: 1ea512b92ec (the section is gated on showHubApiKey alone), 0ae2a6a36d7 (Generate +# and Revoke move into the new hg/js/hubApiKey.js, which printApiKeySection() includes +# itself; hgHubConnect.js stops swallowing a link to another host), ac3191c7e76 (the mirror +# Hub Upload tab shows instructions), 14ecff07305 and 33eb806d370 (hgHubSyncApiKey, a key +# sync between geo mirrors behind syncHubApiKeys, answered before any cart is built). None +# is in v503. +# +# What is asserted: +# +# * Logged in, the Hub Development tab holds #apiKeySection with its heading and the +# Generate key button, and the page loads hubApiKey.js. On v503 the section is drawn +# too (genome-test sets both storeUserFiles and showHubApiKey), so the script tag is +# what tells the builds apart: the buttons there call hgMyData.js. +# * A cjCmd naming hgHubSyncApiKey is answered with the ticket's own refusal, "not enabled +# on this site", as bare JSON and without a cart. v503 has no such command and answers +# "cartJson: unrecognized command". +# +# Whether docentTest already has a key is not asserted, since that is the account's state, +# and #generateApiKey is on the page either way. +# +# NOT covered: everything that is only true on a host that is not the login host -- the +# mirror Hub Upload instructions, the link to genome.ucsc.edu that is no longer swallowed, +# a key written to that mirror's own central -- and the sync itself between three mirrors. +# hgwdev is the login host, so none of it can be drawn here. Generate and Revoke are not +# pressed, by rule: this is a shared test account. +# +# hg.conf GATES: showHubApiKey=on for the section (genome-test sets showHubApiKey=true), and +# the sync refusal depends on syncHubApiKeys being OFF, its default. Lou's note of +# 2026-09-28 says the RR will turn it on after the release; on a server with it on, the +# second check fails, and that is a configuration answer. Settle both with +# grep -E '^(showHubApiKey|syncHubApiKeys)' /usr/local/apache/cgi-bin/hg.conf +# +# Signs in as docentTest (see ~/.docentLogin). On a ticket park, target the HTTPS port. +proof: + - "assertion-only 2026-09-30 -- written from #38323, 1ea512b92ec, 0ae2a6a36d7 and 14ecff07305" + - "release-ab 2026-09-30 -- passes on genome-test, hgwbeta and ts park 38423 (v504, https 49084); fails on v503 (ts park 38316, https 49106) at step 5, no hubApiKey.js on the page although the section and its Generate key button are drawn; with that check taken out it fails at step 7, the sync request answered 'cartJson: unrecognized command'" + +target: genome-test +db: hg38 +size: [1400, 900] +reset: true +fast: true +steps: + - login: true + - goto: "/cgi-bin/hgHubConnect?db=hg38" + - click: 'a[href="#hubDeveloper"]' + - wait: '#apiKeySection' + - expect: + text: "Generate an API key" + has: + - '#hubDeveloper #apiKeySection #generateApiKey' + - '#apiKeySection #revokeApiKeys' + - 'script[src*="hubApiKey"]' + + # A peer's key sync, on a site where sync is off. + - goto: '/cgi-bin/hgHubConnect?cjCmd=%7B%22hgHubSyncApiKey%22%3A%7B%7D%7D' + - expect: + text: '"error": "hgHubSyncApiKey: not enabled on this site"' + noText: "unrecognized command"