// Copyright (C) The Arvados Authors. All rights reserved.
//
// SPDX-License-Identifier: AGPL-3.0
// ***********************************************************
// This example support/component.ts is processed and
// loaded automatically before your test files.
//
// This is a great place to put global configuration and
// behavior that modifies Cypress.
//
// You can change the location of this file or turn off
// automatically serving support files with the
// 'supportFile' configuration option.
//
// You can read more here:
// https://on.cypress.io/configuration
// ***********************************************************
// Import commands.js using ES2015 syntax:
import './commands'
// Alternatively you can use CommonJS syntax:
// require('./commands')
import { mount } from 'cypress/react'
// Augment the Cypress namespace to include type definitions for
// your custom command.
// Alternatively, can be defined in cypress/support/component.d.ts
// with a at the top of your spec.
// declare global {
// namespace Cypress {
// interface Chainable {
// mount: typeof mount
// }
// }
// }
Cypress.Commands.add('mount', mount)
/*
The following is a workaraound for Arvados Issue #22483 which is known and persists in Cypress v14+:
https://github.com/cypress-io/cypress/issues/28644
The entire if statement can be removed once the bug is fixed by Cypress.
*/
if (window.Cypress) {
// Prevent chunk loading errors from failing tests
const originalOnError = window.onerror;
window.onerror = (msg, source, lineno, colno, err) => {
if (err && err.message && err.message.includes('Loading chunk')) {
console.warn('Chunk loading error intercepted:', err);
return false;
}
return originalOnError?.(msg, source, lineno, colno, err);
};
window.addEventListener('unhandledrejection', (event) => {
if (event.reason && event.reason.message && event.reason.message.includes('Loading chunk')) {
event.preventDefault();
console.warn('Chunk loading rejection intercepted:', event.reason);
}
});
window.addEventListener('error', (event) => {
if (event.error?.message?.includes('Loading chunk')) {
event.preventDefault();
cy.log('Chunk loading error detected - reloading page');
window.location.reload();
}
});
}
// Example use:
// cy.mount()