|
12345678910111213141516171819202122232425262728293031323334353637383940 |
- const list_view = "/app/todo";
-
- // test round trip with filter types
-
- const test_queries = [
- "?status=Open",
- `?date=%5B"Between"%2C%5B"2022-06-01"%2C"2022-06-30"%5D%5D`,
- `?date=%5B">"%2C"2022-06-01"%5D`,
- `?name=%5B"like"%2C"%2542%25"%5D`,
- `?status=%5B"not%20in"%2C%5B"Open"%2C"Closed"%5D%5D`,
- ];
-
- describe("SPA Routing", { scrollBehavior: false }, () => {
- before(() => {
- cy.login();
- cy.go_to_list("ToDo");
- });
-
- after(() => {
- cy.clear_filters(); // avoid flake in future tests
- });
-
- it("should apply filter on list view from route", () => {
- test_queries.forEach((query) => {
- const full_url = `${list_view}${query}`;
- cy.visit(full_url);
- cy.findByTitle("To Do").should("exist");
-
- const expected = new URLSearchParams(query);
- cy.location().then((loc) => {
- const actual = new URLSearchParams(loc.search);
- // This might appear like a dumb test checking visited URL to itself
- // but it's actually doing a round trip
- // URL with params -> parsed filters -> new URL
- // if it's same that means everything worked in between.
- expect(actual.toString()).to.eq(expected.toString());
- });
- });
- });
- });
|