Krátky snippet, ktorý umožňuje otestovať, či je funkcia preserveScroll zapnutá v InertiaJS. Môže byť použitý ako súčasť procesu vývoja riadeného testami (TDD). Snippet sa pravdepodobne dá prispôsobiť aj pre iné testy súvisiace so scrollovaním, ale je špeciálne zameraný na funkciu InertiaJS nazvanú Scroll Regions takto:

<div class="overflow-y-auto" scroll-region>
  <!-- Your page content -->
  <!-- ... -->
  <div data-cy="an-element-below" />
</div>

Teraz vytvorte HTML odkaz zachovávajúci scroll v InertiaJS alebo vytvorte InertiaJS request s rovnakou vlastnosťou v Javascripte:

Inertia.get(route("post.show"), { post }, { preserveScroll: true })

Definovanie divu s atribútom scroll-region znemožňuje použiť bežnú metódu testovania window.scrollY, keďže tá bude vždy reportovať 0. Namiesto toho by sa mal sledovať scrollTop na samotnom elemente takto:

cy.get("[data-cy=an-element-below]").scrollIntoView().should("be.visible")
cy.get("[scroll-region]").invoke("scrollTop").should("not.eq", 0)

Takýto test zabezpečuje, že ak zabudnete alebo náhodne odstránite preserveScroll: true zo svojich šablón, Cypress vás na to upozorní.

Odkazy #