perf(web): bound speculative route warming
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { cleanup, fireEvent, render, screen } from '@testing-library/react';
|
||||
import { afterEach, describe, expect, it, vi } from 'vitest';
|
||||
import { useEffect, useState } from 'react';
|
||||
import { lazy, useEffect, useState } from 'react';
|
||||
import { MemoryRouter, useSearchParams } from 'react-router-dom';
|
||||
import { isRouteChunkError, RoutePage } from './RouteBoundary';
|
||||
import { ROUTER_FUTURE } from './routerConfig';
|
||||
@@ -36,6 +36,14 @@ describe('route recovery boundary', () => {
|
||||
expect(screen.getByText(/旧标签页仍引用上一版本资源/)).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it('keeps a meaningful content skeleton visible while a route chunk is pending', () => {
|
||||
const PendingPage = lazy(() => new Promise<never>(() => undefined));
|
||||
const { container } = render(<MemoryRouter future={ROUTER_FUTURE} initialEntries={['/access']}><RoutePage page={PendingPage} label="接入管理" /></MemoryRouter>);
|
||||
expect(screen.getByRole('status')).toHaveTextContent('正在加载接入管理');
|
||||
expect(screen.getByText('导航与筛选状态已保留')).toBeInTheDocument();
|
||||
expect(container.querySelectorAll('.v2-page-skeleton > i')).toHaveLength(4);
|
||||
});
|
||||
|
||||
it('keeps page state mounted when only URL search parameters change', () => {
|
||||
let mounts = 0;
|
||||
function FilterablePage() {
|
||||
|
||||
Reference in New Issue
Block a user