7aba31f14aed7f2620e4746b54f9569a5c93e1ad braney Sat Sep 12 15:07:34 2026 -0700 docent: ten regression tests for quickLift, on hgTracks and on hgc, refs #38252 Fourteen scripts here already lift something -- they are the ones that call `convert: {quicklift: true}` -- so these take the parts of the lift that had no test. Five read the lifted image and five read a details page: rm38032 the target keeps the source's track order. First use of `ordered:`, which was added to expect: for this bug rm38042 a ClinVar CNV running past the chains quickLift loads is clipped rather than dropped, so the spanned-item merge still has it rm37646 a lolly composite subtrack lifts, and its map boxes still carry its own track name -- the string the stale pop pointer clobbered rm36048 the spanned-item merge still works on a lifted DECIPHER track rm37815 "Hide all default tracks on the target" hides all six of hs1's own tracks and keeps the lifted one rm36059 a lifted GENCODE Versions item gives the real details page, in destination coordinates, with no "Can't start query" rm36370 a lifted knownGene click renders GeneReviews and Methods, the two sections the ticket says were missing rm36125 a lifted RefSeq item's page, and its Predicted Protein link returning SHH's peptide instead of a blank page rm36942 the Alignment Differences description, reached from a difference item: the four colors and the figure rm38146 the same page with a GenArk assembly as the SOURCE, down to the base alignment that reads query bases out of a two bit file All ten are assertion-only: every fix shipped long ago. make test is 57 of 57 green in 10m18s, up from 7m34s -- each script costs a convert, about 17 seconds, because no URL builds a quickLift hub. README.txt gains what the batch cost. A lifted row and map box carry a per-run hub__ prefix, so rows: matches by suffix and a has: selector must use a substring. Never assert a count an otto reload can move: rm38042 and rm36048 both read the merged-item box and leave its count (45 for ClinVar today) to a comment. And a details page prints the track's own labels whether or not it worked, so each hgc assertion names something only the fixed page has. Three candidates were rejected: #38033's "(N items could not be lifted)" label is only in the drawn image and the page JSON, where no expect: check reaches it; #37970 needs a broadPeak track and hg38 has none; #37974's center-label drag is pixels. diff --git src/hg/utils/docent/tests/regress/README.txt src/hg/utils/docent/tests/regress/README.txt index 5ad966e8844..df58a6e4934 100644 --- src/hg/utils/docent/tests/regress/README.txt +++ src/hg/utils/docent/tests/regress/README.txt @@ -137,15 +137,49 @@ buttons, where the title changes with the mode and would otherwise be a second, free assertion -- it is not available. **Multi-region is reachable from the URL, and the dialog is not.** `virtModeType=`, `multiRegionsBedInput=` (the textarea's own cart variable, newlines as %0A), `singleAltHaploId=`, `virtWinFull=on` and `.hideEmptySubtracks=on` all work on a `goto:`, which is how nine of the ten set their state -- Docent has no verb that types into an arbitrary field, so the textarea and the alt-haplotype input cannot be filled. What still needs the real dialog is anything the page's JavaScript decides: rm29452's disabled radio and its status line are invisible to curl, because the server sends the same HTML on a build with the bug and a build without it. `virtWinFull=on` is worth knowing for a third reason: without it a region change lands zoomed in on one region, so a second region is off screen and a script cannot tell a region that failed to resolve from one that is merely not in view. + +Ten more for quickLift, five on hgTracks and five on hgc +---------------------------------------------------------- + +rm36048, rm36059, rm36125, rm36370, rm36942, rm37646, rm37815, rm38032, rm38042 and +rm38146 are one batch, written 2026-09-12. Fourteen scripts here already lifted something +(they are the ones that call `convert: {quicklift: true}`); these add the parts of the +lift that had no test: the order tracks come out in, an item bigger than the chains +quickLift loads, the spanned-item merge, a lolly subtrack, the hide-target-defaults +checkbox, and five details pages -- GENCODE archive, hgGene, NCBI RefSeq, the Alignment +Differences description, and the same page with a GenArk assembly as the SOURCE. + +Each one costs a convert, which is about 17 seconds: hgConvert plus a hub build plus the +click through to the browser. Budget for that before adding more. + +Three things worth reusing from them: + +**The lift is set up through the UI and read from the map.** There is no URL that makes a +quickLift hub, so every script here does `convert:` then `open: lift`. What comes back +carries a per-run `hub__` prefix on every row id and every map box, so `rows:` matches +by suffix and a `has:` selector has to use a substring (`area[href*="clinvarSubLolly"]`), +never an exact id. + +**Do not assert a count that a data update can move.** rm38042 and rm36048 both read the +spanned-item merge box, and the tooltip on it counts the items merged -- 45 for ClinVar on +2026-09-12. That number is reloaded by an otto cron every month. Both scripts assert that +the box is THERE (`area[data-tooltip^="Merged "]`) and leave the count to a comment, so a +red morning is news about quickLift rather than about ClinVar. + +**A details page carries the track's own labels, so name something else.** rm36125 asserts +SHH's N-terminal peptide, rm36059 a UniProtKB section, rm36370 two section headings that +were missing, rm38146 the query sequence read out of a two bit file. Each of those is +absent from the page the ticket was filed about and present on the fixed one; the track +name and longLabel are on both.