No description
Find a file
Matt Sykes 76b4c35d59 Prevent error redirect loops with beforeEach circuit breaker
This adds a circuit breaker for uncaught failures in beforeEach. The first failure still goes through the normal ERROR/RESTART recovery path; a second consecutive failure redirects to the static error page instead of looping.
- New before-each-error-recovery module tracks recovery attempts in sessionStorage (with an in-memory fallback).
- ERROR/RESTART routes skip normal guard logic so the counter can accumulate across bounce-backs.
- The counter clears only after a fully successful navigation.
- redirectToStaticErrorPage centralizes hard-error bailout: logs, clears poisoned sessionStorage keys (submittedState, heritage redirect count, recovery count, externalParameterState), then navigates to /fmg/static/error.
- The static error page RESTART flow clears the same sessionStorage keys so bad state does not re-enter the funnel.
- Session storage key strings are centralized in session-storage.js.
- Unit tests cover recovery counting, bailout clearing, and navigation fallbacks.
Expected impact: Stops repeated ERROR → RESTART → ERROR cycles (including corrupt submittedState JSON.parse failures and recurring automation errors in us-east-1/us-east-2) by bailing out to the static error page after one failed recovery attempt.
2026-06-10 15:48:29 -04:00
playwright-tests more changes 2026-05-12 22:26:41 -04:00
public Prevent error redirect loops with beforeEach circuit breaker 2026-06-10 15:48:29 -04:00
src Prevent error redirect loops with beforeEach circuit breaker 2026-06-10 15:48:29 -04:00
temp rerun pipeline after disk space issue 2025-08-04 10:19:36 -04:00
.gitattributes Add gitattributes file 2022-10-28 16:42:47 -04:00
.gitignore Removes Playwright testing setup from core project 2025-06-05 16:22:34 -04:00
.prettierrc CASH-256 2025-02-14 15:13:26 -05:00
azure-pipelines-automated-testing.yml Updates Playwright Jira reporter and pool 2025-08-01 13:19:07 -04:00
azure-pipelines.yml Remove SED steps as no longer necessary. 2025-09-18 17:13:47 -04:00
babel.config.js Added back jest support for unit testing, added mock unit test 2021-10-27 11:24:32 -04:00
Dockerfile.playwright Loads environment variables in Docker containers 2025-07-15 11:29:49 -04:00
environment-variables.js Remove solarwinds RUM script from solution 2026-05-27 09:45:02 -04:00
jest.config.js CASH-2466 add insurance page shells 2026-04-28 08:15:24 -04:00
jsconfig.json Fixes go to definition and intellisense for @ imports that are everywher 2026-03-06 17:34:28 -05:00
package-lock.json CASH-699 add input fields for insurance-details page 2026-04-28 15:52:35 -04:00
package.json CASH-699 add input fields for insurance-details page 2026-04-28 15:52:35 -04:00
README.md Updated readme 2022-01-26 15:19:43 -05:00
vue.config.js Consolidated defs to single file. 2025-09-19 10:26:19 -04:00
vue.release.config.js Consolidated defs to single file. 2025-09-19 10:26:19 -04:00

Fix My Glass Vue Project


This Repository is for Fix My Glass front end Vue and documentation associated with it.

Routing

We are using Vue Router 4.x for our front end routing. We are using a runtime dynamic routing solution. Some more information about dynamic routing can be found on the official Vue Router documentation.

Next() - Is a function that is native to Vue Router in which we call in order to send the user where want them to go based on some logic we have. You can read more about Navigation Guards and the Next() function on the Vue Router documentation.

GetRouteInfoFromPageName(PageName) - This method typically takes the query string value of fmgPage and passes it into a call to our Content Service. The service will pull information on the page; matching page name passed to page name in our Cms. If we have a match, we will compile the route information and send it to our router to process. If we do not have a that page in our Cms, the user will be served back a 404 page while retaining the structure.

GoToFunnelStartOn404(next) - When a user tries to go to a page that doesn't exist in the CMS, they will be put back to the 'Start' of the funnel which is whatever page is marked as the homepage on Sitefinity.