# Instructions

- Following Playwright test failed.
- Explain why, be concise, respect Playwright best practices.
- Provide a snippet of code with the fix, if possible.

# Test info

- Name: tests/ui/district-delegates.spec.ts >> DC delegate district has a current00 canonical and historical98 redirect
- Location: tests/ui/district-delegates.spec.ts:11:7

# Error details

```
Error: DC:98 must redirect rather than retire or retain an old owner

expect(received).toBe(expected) // Object.is equality

Expected: 301
Received: 410
```

# Page snapshot

```yaml
- generic [active] [ref=f1e1]:
  - banner [ref=f1e2]:
    - heading "District of Columbia At-Large Congressional District" [level=1] [ref=f1e3]
    - paragraph [ref=f1e4]: Congressional District Profile
  - generic [ref=f1e5]:
    - generic [ref=f1e6]:
      - generic [ref=f1e7]: Not signed in
      - generic [ref=f1e9]:
        - link "Log in" [ref=f1e10] [cursor=pointer]:
          - /url: /outpost.goauthentik.io/start?rd=https%3A%2F%2Fus.elect.info%2Fdistricts%2Fdc-00%2F
        - link "Create an account" [ref=f1e11] [cursor=pointer]:
          - /url: /signin/register?rd=https%3A%2F%2Fus.elect.info%2Fdistricts%2Fdc-00%2F
    - toolbar "Member tools" [ref=f1e12]:
      - button "All cycles (Sign in to use the cycle facet)" [disabled] [ref=f1e13] [cursor=pointer]:
        - generic [ref=f1e17]: All cycles
      - button "Graph (Sign in to use Graph)" [disabled] [ref=f1e20] [cursor=pointer]:
        - generic [ref=f1e29]: Graph
  - generic [ref=f1e32]:
    - heading "Overview" [level=2] [ref=f1e33]
    - generic [ref=f1e34]:
      - term [ref=f1e35]: District ID
      - definition [ref=f1e36]: DC-00
      - term [ref=f1e37]: State
      - definition [ref=f1e38]:
        - link "District of Columbia" [ref=f1e39] [cursor=pointer]:
          - /url: https://us.elect.info/states/district-of-columbia/
      - term [ref=f1e40]: District Number
      - definition [ref=f1e41]: "00"
      - term [ref=f1e42]: Total Candidates
      - definition [ref=f1e43]: "107"
      - term [ref=f1e44]: Election Cycles
      - definition [ref=f1e45]:
        - generic [ref=f1e46]:
          - link "2026" [ref=f1e47] [cursor=pointer]:
            - /url: https://us.elect.info/elections/2026/
          - text: ","
          - link "2024" [ref=f1e48] [cursor=pointer]:
            - /url: https://us.elect.info/elections/2024/
          - text: ","
          - link "2022" [ref=f1e49] [cursor=pointer]:
            - /url: https://us.elect.info/elections/2022/
          - text: ","
          - link "2020" [ref=f1e50] [cursor=pointer]:
            - /url: https://us.elect.info/elections/2020/
          - text: ","
          - link "2018" [ref=f1e51] [cursor=pointer]:
            - /url: https://us.elect.info/elections/2018/
          - text: ","
          - link "2016" [ref=f1e52] [cursor=pointer]:
            - /url: https://us.elect.info/elections/2016/
          - text: ","
          - link "2014" [ref=f1e53] [cursor=pointer]:
            - /url: https://us.elect.info/elections/2014/
          - text: ","
          - link "2012" [ref=f1e54] [cursor=pointer]:
            - /url: https://us.elect.info/elections/2012/
          - text: ","
          - link "2010" [ref=f1e55] [cursor=pointer]:
            - /url: https://us.elect.info/elections/2010/
          - text: ","
          - link "2008" [ref=f1e56] [cursor=pointer]:
            - /url: https://us.elect.info/elections/2008/
          - text: ","
          - link "2006" [ref=f1e57] [cursor=pointer]:
            - /url: https://us.elect.info/elections/2006/
          - text: ","
          - link "2004" [ref=f1e58] [cursor=pointer]:
            - /url: https://us.elect.info/elections/2004/
          - text: ","
          - link "2002" [ref=f1e59] [cursor=pointer]:
            - /url: https://us.elect.info/elections/2002/
          - text: ","
          - link "2000" [ref=f1e60] [cursor=pointer]:
            - /url: https://us.elect.info/elections/2000/
          - text: ","
          - link "1998" [ref=f1e61] [cursor=pointer]:
            - /url: https://us.elect.info/elections/1998/
          - text: ","
          - link "1996" [ref=f1e62] [cursor=pointer]:
            - /url: https://us.elect.info/elections/1996/
          - text: ","
          - link "1994" [ref=f1e63] [cursor=pointer]:
            - /url: https://us.elect.info/elections/1994/
          - text: ","
          - link "1992" [ref=f1e64] [cursor=pointer]:
            - /url: https://us.elect.info/elections/1992/
          - text: ","
          - link "1990" [ref=f1e65] [cursor=pointer]:
            - /url: https://us.elect.info/elections/1990/
          - text: ","
          - link "1988" [ref=f1e66] [cursor=pointer]:
            - /url: https://us.elect.info/elections/1988/
          - text: ","
          - link "1986" [ref=f1e67] [cursor=pointer]:
            - /url: https://us.elect.info/elections/1986/
          - text: ","
          - link "1984" [ref=f1e68] [cursor=pointer]:
            - /url: https://us.elect.info/elections/1984/
          - text: ","
          - link "1982" [ref=f1e69] [cursor=pointer]:
            - /url: https://us.elect.info/elections/1982/
          - text: ","
          - link "1980" [ref=f1e70] [cursor=pointer]:
            - /url: https://us.elect.info/elections/1980/
    - paragraph [ref=f1e71]:
      - link "View office details for U.S. Representative - District of Columbia District 00" [ref=f1e72] [cursor=pointer]:
        - /url: https://us.elect.info/offices/house/dc-00/
  - generic [ref=f1e73]:
    - heading "Demographics" [level=2] [ref=f1e74]
    - generic [ref=f1e75]:
      - term [ref=f1e76]: Total Citizen Population
      - definition [ref=f1e77]: 630,584
      - term [ref=f1e78]: Citizen Voting Age Population (CVAP)
      - definition [ref=f1e79]: 506,635
    - heading "Citizen Population by Race/Ethnicity" [level=3] [ref=f1e80]
    - table [ref=f1e81]:
      - rowgroup [ref=f1e82]:
        - row [ref=f1e83]:
          - columnheader "Group" [ref=f1e84]
          - columnheader "Citizens" [ref=f1e85]
          - columnheader "Share" [ref=f1e86]
      - rowgroup [ref=f1e87]:
        - row [ref=f1e88]:
          - cell "Non-Hispanic" [ref=f1e89]
          - cell "572,019" [ref=f1e90]
          - cell "90.7%" [ref=f1e91]
        - row [ref=f1e92]:
          - cell "Hispanic" [ref=f1e93]
          - cell "58,566" [ref=f1e94]
          - cell "9.3%" [ref=f1e95]
        - row [ref=f1e96]:
          - cell "White" [ref=f1e97]
          - cell "244,512" [ref=f1e98]
          - cell "38.8%" [ref=f1e99]
        - row [ref=f1e100]:
          - cell "Black" [ref=f1e101]
          - cell "279,137" [ref=f1e102]
          - cell "44.3%" [ref=f1e103]
        - row [ref=f1e104]:
          - cell "Asian" [ref=f1e105]
          - cell "20,919" [ref=f1e106]
          - cell "3.3%" [ref=f1e107]
        - row [ref=f1e108]:
          - cell "American Indian / Alaska Native" [ref=f1e109]
          - cell "713" [ref=f1e110]
          - cell "0.1%" [ref=f1e111]
        - row [ref=f1e112]:
          - cell "Native Hawaiian / Pacific Islander" [ref=f1e113]
          - cell "261" [ref=f1e114]
          - cell "0.0%" [ref=f1e115]
        - row [ref=f1e116]:
          - cell "Two or More Races" [ref=f1e117]
          - cell "4,509" [ref=f1e118]
          - cell "0.7%" [ref=f1e119]
    - heading "Citizen Voting Age Population by Race/Ethnicity" [level=3] [ref=f1e120]
    - table [ref=f1e121]:
      - rowgroup [ref=f1e122]:
        - row [ref=f1e123]:
          - columnheader "Group" [ref=f1e124]
          - columnheader "CVAP" [ref=f1e125]
          - columnheader "Share" [ref=f1e126]
      - rowgroup [ref=f1e127]:
        - row [ref=f1e128]:
          - cell "Non-Hispanic" [ref=f1e129]
          - cell "468,847" [ref=f1e130]
          - cell "92.5%" [ref=f1e131]
        - row [ref=f1e132]:
          - cell "Hispanic" [ref=f1e133]
          - cell "37,795" [ref=f1e134]
          - cell "7.5%" [ref=f1e135]
        - row [ref=f1e136]:
          - cell "White" [ref=f1e137]
          - cell "214,938" [ref=f1e138]
          - cell "42.4%" [ref=f1e139]
        - row [ref=f1e140]:
          - cell "Black" [ref=f1e141]
          - cell "216,501" [ref=f1e142]
          - cell "42.7%" [ref=f1e143]
        - row [ref=f1e144]:
          - cell "Asian" [ref=f1e145]
          - cell "18,977" [ref=f1e146]
          - cell "3.7%" [ref=f1e147]
        - row [ref=f1e148]:
          - cell "American Indian / Alaska Native" [ref=f1e149]
          - cell "610" [ref=f1e150]
          - cell "0.1%" [ref=f1e151]
        - row [ref=f1e152]:
          - cell "Native Hawaiian / Pacific Islander" [ref=f1e153]
          - cell "240" [ref=f1e154]
          - cell "0.0%" [ref=f1e155]
        - row [ref=f1e156]:
          - cell "Two or More Races" [ref=f1e157]
          - cell "3,335" [ref=f1e158]
          - cell "0.7%" [ref=f1e159]
    - paragraph [ref=f1e160]: "Source: Redistricting Data Hub / U.S. Census Bureau CVAP Special Tabulation."
  - generic [ref=f1e161]:
    - heading "Candidates" [level=2] [ref=f1e162]
    - generic [ref=f1e164]:
      - generic [ref=f1e165]:
        - generic [ref=f1e166]:
          - combobox "Search entities" [ref=f1e167]
          - status [ref=f1e168]
        - button "Search" [ref=f1e169] [cursor=pointer]
      - generic [ref=f1e170]:
        - heading "Candidates" [level=3] [ref=f1e172]
        - generic [ref=f1e173]:
          - link "NORTON, ELEANOR HOLMES DEM | $2,919,038" [ref=f1e174] [cursor=pointer]:
            - /url: /politicians/cfff9758-6df6-8c74-c31f-e6240c40e64d/
            - generic [ref=f1e175]: NORTON, ELEANOR HOLMES
            - generic [ref=f1e176]: DEM | $2,919,038
          - link "WHITE, ROBERT C. JR. DEM | $155,500" [ref=f1e177] [cursor=pointer]:
            - /url: /politicians/d2727c6b-1827-d2b6-49db-14b9b7eb4c89/
            - generic [ref=f1e178]: WHITE, ROBERT C. JR.
            - generic [ref=f1e179]: DEM | $155,500
          - link "FAUNTROY, WALTER EDWARD DEM | $142,386" [ref=f1e180] [cursor=pointer]:
            - /url: /politicians/18e4b3f1-685d-8849-13f7-472c13f6eafb/
            - generic [ref=f1e181]: FAUNTROY, WALTER EDWARD
            - generic [ref=f1e182]: DEM | $142,386
          - link "KANE, BETTY ANN DEM | $31,525" [ref=f1e183] [cursor=pointer]:
            - /url: /politicians/58ded260-13f0-3f24-5cc7-88efebd23446/
            - generic [ref=f1e184]: KANE, BETTY ANN
            - generic [ref=f1e185]: DEM | $31,525
          - link "SINGLETON, HARRY MICHAEL REP | $16,400" [ref=f1e186] [cursor=pointer]:
            - /url: /politicians/1484dff7-a112-7f88-99a6-a83d8677fee2/
            - generic [ref=f1e187]: SINGLETON, HARRY MICHAEL
            - generic [ref=f1e188]: REP | $16,400
          - link "PINTO, BROOKE DEM | $10,000" [ref=f1e189] [cursor=pointer]:
            - /url: /politicians/bfc9ade4-e104-5518-1d80-a8119ecd9ae3/
            - generic [ref=f1e190]: PINTO, BROOKE
            - generic [ref=f1e191]: DEM | $10,000
          - link "ZALESNE, KINNEY DEM | $7,000" [ref=f1e192] [cursor=pointer]:
            - /url: /politicians/28bcf1ba-14c1-0d35-84be-605c90fa01c3/
            - generic [ref=f1e193]: ZALESNE, KINNEY
            - generic [ref=f1e194]: DEM | $7,000
          - link "EMERSON, SUSAN REP | $5,350" [ref=f1e195] [cursor=pointer]:
            - /url: /politicians/84eb99a9-ff49-3d31-f4ea-b900bfb5843d/
            - generic [ref=f1e196]: EMERSON, SUSAN
            - generic [ref=f1e197]: REP | $5,350
          - link "YELDELL, JOSEPH PHILLIP DEM | $2,750" [ref=f1e198] [cursor=pointer]:
            - /url: /politicians/f379bfc5-a042-d07c-7a10-34384be912da/
            - generic [ref=f1e199]: YELDELL, JOSEPH PHILLIP
            - generic [ref=f1e200]: DEM | $2,750
          - link "TEMPLE, DONALD MELVIN DEM | $2,250" [ref=f1e201] [cursor=pointer]:
            - /url: /politicians/1e3aca14-532a-34a7-5b8e-1029c8b0c6b1/
            - generic [ref=f1e202]: TEMPLE, DONALD MELVIN
            - generic [ref=f1e203]: DEM | $2,250
          - link "TUCKER, STERLING DEM | $1,300" [ref=f1e204] [cursor=pointer]:
            - /url: /politicians/20c711b2-f433-2475-cb40-e6dba0cde93b/
            - generic [ref=f1e205]: TUCKER, STERLING
            - generic [ref=f1e206]: DEM | $1,300
          - link "HAMILTON, WENDY REV DEM | $1,000" [ref=f1e207] [cursor=pointer]:
            - /url: /politicians/58b2ec3f-ee3a-4927-7cd8-b1e040f6a155/
            - generic [ref=f1e208]: HAMILTON, WENDY REV
            - generic [ref=f1e209]: DEM | $1,000
          - link "HOLBROOK, TRENT WILLIAM DEM | $1,000" [ref=f1e210] [cursor=pointer]:
            - /url: /politicians/a44b3b4c-d8a0-cc59-679a-ccf9aa16a355/
            - generic [ref=f1e211]: HOLBROOK, TRENT WILLIAM
            - generic [ref=f1e212]: DEM | $1,000
          - link "JACZKO, GREGORY DR. DEM | $1,000" [ref=f1e213] [cursor=pointer]:
            - /url: /politicians/76a79241-cd9a-9dc3-e9f5-735e6d3885ed/
            - generic [ref=f1e214]: JACZKO, GREGORY DR.
            - generic [ref=f1e215]: DEM | $1,000
          - link "SMITH, MARJORIE (MISSY) REILLY REP | $500" [ref=f1e216] [cursor=pointer]:
            - /url: /politicians/89e23696-f191-457e-73a7-e7fa35bca47d/
            - generic [ref=f1e217]: SMITH, MARJORIE (MISSY) REILLY
            - generic [ref=f1e218]: REP | $500
          - link "DOWNS, M BRADLEY UNK" [ref=f1e219] [cursor=pointer]:
            - /url: /politicians/bae85923-f0c2-b447-f6c8-be696482762a/
            - generic [ref=f1e220]: DOWNS, M BRADLEY
            - generic [ref=f1e221]: UNK
          - link "MORRIS, VINCENT DEM" [ref=f1e222] [cursor=pointer]:
            - /url: /politicians/58b2c859-4846-63f2-bfa7-5ff92e61466e/
            - generic [ref=f1e223]: MORRIS, VINCENT
            - generic [ref=f1e224]: DEM
          - link "KING, MARY L.H. REP" [ref=f1e225] [cursor=pointer]:
            - /url: /politicians/2fcb0b8d-108b-84ff-74fd-5b035ed0dbff/
            - generic [ref=f1e226]: KING, MARY L.H.
            - generic [ref=f1e227]: REP
          - link "RIMENSNYDER, NELSON F FREDERICK REP" [ref=f1e228] [cursor=pointer]:
            - /url: /politicians/1e87d4f9-f305-2dcf-8078-db40eaf1ba5f/
            - generic [ref=f1e229]: RIMENSNYDER, NELSON F FREDERICK
            - generic [ref=f1e230]: REP
          - link "MONROE, MICHAEL A. REP" [ref=f1e231] [cursor=pointer]:
            - /url: /politicians/ac1a5aa1-8c77-880d-2c23-1921925be74d/
            - generic [ref=f1e232]: MONROE, MICHAEL A.
            - generic [ref=f1e233]: REP
          - link "LOWERY, AMIR IND" [ref=f1e234] [cursor=pointer]:
            - /url: /politicians/440c246d-840b-6d85-d7a1-2062f8f8e97a/
            - generic [ref=f1e235]: LOWERY, AMIR
            - generic [ref=f1e236]: IND
          - link "REED, WILLIAM REP" [ref=f1e237] [cursor=pointer]:
            - /url: /politicians/02860dc1-c55d-f0fb-c6d1-07e252286769/
            - generic [ref=f1e238]: REED, WILLIAM
            - generic [ref=f1e239]: REP
          - link "TINGLING-CLEMMONS, RICK GRE" [ref=f1e240] [cursor=pointer]:
            - /url: /politicians/f802e1dd-0edd-a35c-7ed5-0be75bc7882b/
            - generic [ref=f1e241]: TINGLING-CLEMMONS, RICK
            - generic [ref=f1e242]: GRE
          - link "FROST, ALVIN IND" [ref=f1e243] [cursor=pointer]:
            - /url: /politicians/7dc806c1-ab2e-20aa-93d8-afcf2a34ecba/
            - generic [ref=f1e244]: FROST, ALVIN
            - generic [ref=f1e245]: IND
          - link "WINDHAUSER, ANGELA MARIE REP" [ref=f1e246] [cursor=pointer]:
            - /url: /politicians/b1cbbea5-7618-23c1-c644-cddfb3088d60/
            - generic [ref=f1e247]: WINDHAUSER, ANGELA MARIE
            - generic [ref=f1e248]: REP
          - link "MILLER, ROFFLE MAYES JR REP" [ref=f1e249] [cursor=pointer]:
            - /url: /politicians/b610ff64-dfd9-e9e3-8207-4e1f04d4db6f/
            - generic [ref=f1e250]: MILLER, ROFFLE MAYES JR
            - generic [ref=f1e251]: REP
          - link "PATTERSON, JACQUE DONALD DR SR DEM" [ref=f1e252] [cursor=pointer]:
            - /url: /politicians/88d551f9-e8e5-5721-549b-fc000ca4c633/
            - generic [ref=f1e253]: PATTERSON, JACQUE DONALD DR SR
            - generic [ref=f1e254]: DEM
          - link "CURE, GEORGE X IND" [ref=f1e255] [cursor=pointer]:
            - /url: /politicians/992be837-5fc9-7679-823b-bac1d8ad192c/
            - generic [ref=f1e256]: CURE, GEORGE X
            - generic [ref=f1e257]: IND
          - link "CHAMPION, JACKSON R REP" [ref=f1e258] [cursor=pointer]:
            - /url: /politicians/925fe93e-a3db-eb85-1e1d-63a2d999638b/
            - generic [ref=f1e259]: CHAMPION, JACKSON R
            - generic [ref=f1e260]: REP
          - link "ALEXANDER, MYRTLE PATRICIA DR. REP" [ref=f1e261] [cursor=pointer]:
            - /url: /politicians/8c54fe97-5d64-42e6-bde8-039c48716240/
            - generic [ref=f1e262]: ALEXANDER, MYRTLE PATRICIA DR.
            - generic [ref=f1e263]: REP
          - link "ROEHR, ROBERT REP" [ref=f1e264] [cursor=pointer]:
            - /url: /politicians/10143834-5c79-9144-08d8-459ebd2881fb/
            - generic [ref=f1e265]: ROEHR, ROBERT
            - generic [ref=f1e266]: REP
          - link "BRASWELL, RASCO P NNE" [ref=f1e267] [cursor=pointer]:
            - /url: /politicians/8ffc73a6-9872-5417-a9b1-9ff5767df732/
            - generic [ref=f1e268]: BRASWELL, RASCO P
            - generic [ref=f1e269]: NNE
          - link "CHAMPION, JACKSON R. REP" [ref=f1e270] [cursor=pointer]:
            - /url: /politicians/60a1ae71-03d2-ccd9-8534-b114a61e4018/
            - generic [ref=f1e271]: CHAMPION, JACKSON R.
            - generic [ref=f1e272]: REP
          - link "KIDD, PAT IND" [ref=f1e273] [cursor=pointer]:
            - /url: /politicians/342920c3-f13c-346f-de04-6099e247e30e/
            - generic [ref=f1e274]: KIDD, PAT
            - generic [ref=f1e275]: IND
          - link "GREENFIELD, SAMUEL DEM" [ref=f1e276] [cursor=pointer]:
            - /url: /politicians/23a3f762-e83f-c3a4-3677-895d3453b8dd/
            - generic [ref=f1e277]: GREENFIELD, SAMUEL
            - generic [ref=f1e278]: DEM
          - link "ROSADO, DENISE MS. REP" [ref=f1e279] [cursor=pointer]:
            - /url: /politicians/13c3cc1f-ab52-d922-7553-5d0092f50f6b/
            - generic [ref=f1e280]: ROSADO, DENISE MS.
            - generic [ref=f1e281]: REP
          - link "SIMMONS, BARBARA LETT DEM" [ref=f1e282] [cursor=pointer]:
            - /url: /politicians/d3c9077d-301d-35a0-1105-08f2a5c03faa/
            - generic [ref=f1e283]: SIMMONS, BARBARA LETT
            - generic [ref=f1e284]: DEM
          - link "WILLIAMS, KELLY MIKEL MIKEL MR DEM" [ref=f1e285] [cursor=pointer]:
            - /url: /politicians/8a12aee7-514f-8150-bb25-cf3feca15e47/
            - generic [ref=f1e286]: WILLIAMS, KELLY MIKEL MIKEL MR
            - generic [ref=f1e287]: DEM
          - link "STEVENS, SANDI LEE MS DEM" [ref=f1e288] [cursor=pointer]:
            - /url: /politicians/14bcd8d5-1af5-1ac6-b6cb-fc7a2bd09482/
            - generic [ref=f1e289]: STEVENS, SANDI LEE MS
            - generic [ref=f1e290]: DEM
          - link "BUTLER, JOSEPHINE UNK" [ref=f1e291] [cursor=pointer]:
            - /url: /politicians/0c15a0bf-b271-a551-1d0f-0e9a20c52c46/
            - generic [ref=f1e292]: BUTLER, JOSEPHINE
            - generic [ref=f1e293]: UNK
          - link "SALTZ, DONALD A REP" [ref=f1e294] [cursor=pointer]:
            - /url: /politicians/1f4b13f1-2d21-2799-265a-c655aa6886fc/
            - generic [ref=f1e295]: SALTZ, DONALD A
            - generic [ref=f1e296]: REP
          - link "CHAMPAGNE, JAMES E REP" [ref=f1e297] [cursor=pointer]:
            - /url: /politicians/278b4b2e-39fb-c15a-4ee5-b22ea28b435a/
            - generic [ref=f1e298]: CHAMPAGNE, JAMES E
            - generic [ref=f1e299]: REP
          - link "RIOS, ANGEL ANTHONY MR. DEM" [ref=f1e300] [cursor=pointer]:
            - /url: /politicians/e43c0a7d-0c03-038c-3870-c843c0981275/
            - generic [ref=f1e301]: RIOS, ANGEL ANTHONY MR.
            - generic [ref=f1e302]: DEM
          - link "ALSTON, DONNA JEAN DEM" [ref=f1e303] [cursor=pointer]:
            - /url: /politicians/c2734015-3f9d-8588-3443-f94ac4f79e94/
            - generic [ref=f1e304]: ALSTON, DONNA JEAN
            - generic [ref=f1e305]: DEM
          - link "A BROWN, MICHAEL IND" [ref=f1e306] [cursor=pointer]:
            - /url: /politicians/3392d835-e509-0a5d-a888-047a5789cf7a/
            - generic [ref=f1e307]: A BROWN, MICHAEL
            - generic [ref=f1e308]: IND
          - link "MCCALL, JULIE UNK" [ref=f1e309] [cursor=pointer]:
            - /url: /politicians/36765703-2b40-d7db-055c-93476700f6be/
            - generic [ref=f1e310]: MCCALL, JULIE
            - generic [ref=f1e311]: UNK
          - link "FREEMAN, KYMONE OTH" [ref=f1e312] [cursor=pointer]:
            - /url: /politicians/0993efee-0126-3b8d-4699-9182fcfdf168/
            - generic [ref=f1e313]: FREEMAN, KYMONE
            - generic [ref=f1e314]: OTH
          - link "DABNEY, DAVID H IND" [ref=f1e315] [cursor=pointer]:
            - /url: /politicians/cf40697a-80aa-202f-65b4-2bd241fdded0/
            - generic [ref=f1e316]: DABNEY, DAVID H
            - generic [ref=f1e317]: IND
          - link "FLYUNT, MIKHAIL PETER MR. REP" [ref=f1e318] [cursor=pointer]:
            - /url: /politicians/3384e231-f236-0191-89bf-e29fabec090c/
            - generic [ref=f1e319]: FLYUNT, MIKHAIL PETER MR.
            - generic [ref=f1e320]: REP
          - link "KAMPIA, ROBERT D. LIB" [ref=f1e321] [cursor=pointer]:
            - /url: /politicians/d1fb42b8-19bc-6d4f-3c28-6cffc6d1c2e1/
            - generic [ref=f1e322]: KAMPIA, ROBERT D.
            - generic [ref=f1e323]: LIB
        - generic [ref=f1e324]:
          - generic [ref=f1e325]: Showing 1-50
          - generic [ref=f1e326]:
            - button "First" [disabled] [ref=f1e327]
            - button "Prev" [disabled] [ref=f1e328]
            - button "1" [ref=f1e329] [cursor=pointer]
            - button "Next" [ref=f1e330] [cursor=pointer]
  - contentinfo [ref=f1e331]:
    - paragraph [ref=f1e332]:
      - link "elect.info" [ref=f1e333] [cursor=pointer]:
        - /url: https://us.elect.info/
      - text: "| Data from"
      - link "Federal Election Commission" [ref=f1e334] [cursor=pointer]:
        - /url: https://us.elect.info/datasources/fec.gov/
      - text: "| Generated 2026-10-23"
```

# Test source

```ts
  1  | import { test, expect } from '@playwright/test';
  2  | import { canonicalPath, toRelativePath } from './helpers';
  3  | 
  4  | // Release contract after the coordinated graph + PagePaths cutover (#462): all six
  5  | // delegates exist as current00 entities; the index and00 alias serve them, their
  6  | // live UUID pages canonicalize to00, and historical98 aliases redirect to00.
  7  | // This is intentionally red on the old98 graph / stale alias snapshot. The local
  8  | // district-categories fixture still proves98 rows keep safe current-UUID links;
  9  | // neither that fixture nor these inventory assertions may be skipped for missing rows.
  10 | for (const state of ['AS', 'GU', 'MP', 'VI', 'DC', 'PR']) {
  11 |   test(`${state} delegate district has a current00 canonical and historical98 redirect`, async ({ page, request }) => {
  12 |     const dataResponse = page.waitForResponse(response => {
  13 |       if (!response.url().includes('/api/graphql') || response.request().method() !== 'POST') return false;
  14 |       try {
  15 |         const body = response.request().postDataJSON();
  16 |         const variables = body?.variables;
  17 |         const filters = String(variables?.filter).split(',');
  18 |         return /\bbrowseEntities\s*\(/.test(body?.query || '') && variables?.entityType === 'District' &&
  19 |           filters.includes('district_type:cd') && filters.includes(`state:${state}`);
  20 |       } catch { return false; }
  21 |     });
  22 |     await page.goto(`/districts/?state=${state}&tab=congressional`);
  23 |     const payload = await (await dataResponse).json();
  24 |     expect(payload.errors, `${state}: current inventory query must succeed`).toBeUndefined();
  25 |     const inventory = payload.data?.browseEntities;
  26 |     expect(inventory?.total, `${state}: full congressional inventory must contain exactly one delegate`).toBe(1);
  27 |     expect(inventory?.hasMore, `${state}: delegate inventory must not be truncated`).toBe(false);
  28 |     const rows = inventory?.results;
  29 |     expect(rows, `${state}: exactly one delegate must remain in the graph`).toHaveLength(1);
  30 |     const row = rows[0];
  31 |     expect(row.state).toBe(state);
  32 |     expect(row.district).toBe('00');
  33 |     const metadata = JSON.parse(row.metadata || '{}');
  34 |     expect(metadata.district_type).toBe('cd');
  35 |     expect(metadata.district_slug.toLowerCase()).toBe(`${state.toLowerCase()}-00`);
  36 |     expect(row.id).toMatch(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i);
  37 | 
  38 |     await expect(page.locator('#district-state-select')).toHaveValue(state);
  39 |     const result = page.locator('.entity-search-result');
  40 |     await expect(result).toHaveCount(1, { timeout: 15000 });
  41 |     await expect(result).toContainText(`${state}-00`);
  42 |     const canonical = `/districts/${state.toLowerCase()}-00/`;
  43 |     await expect(result).toHaveAttribute('href', canonical);
  44 |     const response = await page.goto(canonical);
  45 |     expect(response?.status(), `${state}:00 must serve, not redirect or miss`).toBe(200);
  46 |     await expect(page.locator('h1')).toBeVisible();
  47 |     expect(canonicalPath(await page.content())).toBe(canonical);
  48 | 
  49 |     const storage = await request.get(`/districts/${row.id}/`, { maxRedirects: 0 });
  50 |     expect(storage.status(), `${state}: graph-current UUID page must serve`).toBe(200);
  51 |     expect(canonicalPath(await storage.text()), `${state}: current UUID must share00 canonical`).toBe(canonical);
  52 |     const historical = await request.get(`/districts/${state.toLowerCase()}-98/`, { maxRedirects: 0 });
> 53 |     expect(historical.status(), `${state}:98 must redirect rather than retire or retain an old owner`).toBe(301);
     |                                                                                                        ^ Error: DC:98 must redirect rather than retire or retain an old owner
  54 |     expect(toRelativePath(historical.headers()['location'] || '')).toBe(canonical);
  55 |   });
  56 | }
  57 | 
```