mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-10-07 08:06:37 +08:00
feat(web): improve zone domain list and detail navigation
合并 Zone 域名与路由展示,上游地址多行显示并支持路由详情跳转; 域名列表对齐用户管理页样式;Zone 页支持 ?tab= 定位;反代详情返回 使用浏览器历史上一级。
This commit is contained in:
@@ -3,7 +3,9 @@ import {render, screen, waitFor} from '@testing-library/react';
|
||||
import {beforeEach, describe, expect, it, vi} from 'vitest';
|
||||
|
||||
import {ZonePageClient} from '@/app/(main)/websites/[zoneId]/page-client';
|
||||
import {TlsCertificateService, ZoneService} from '@/lib/services/openflare';
|
||||
import {ProxyRouteService, TlsCertificateService, ZoneService} from '@/lib/services/openflare';
|
||||
|
||||
const replaceMock = vi.fn();
|
||||
|
||||
vi.mock('next/link', () => ({
|
||||
default: ({children, href}: {children: React.ReactNode; href: string}) => (
|
||||
@@ -11,6 +13,12 @@ vi.mock('next/link', () => ({
|
||||
),
|
||||
}));
|
||||
|
||||
vi.mock('next/navigation', () => ({
|
||||
useRouter: () => ({replace: replaceMock}),
|
||||
usePathname: () => '/websites/42',
|
||||
useSearchParams: () => new URLSearchParams(),
|
||||
}));
|
||||
|
||||
vi.mock('@/lib/services/openflare', async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import('@/lib/services/openflare')>();
|
||||
return {
|
||||
@@ -23,6 +31,9 @@ vi.mock('@/lib/services/openflare', async (importOriginal) => {
|
||||
TlsCertificateService: {
|
||||
list: vi.fn(),
|
||||
},
|
||||
ProxyRouteService: {
|
||||
list: vi.fn(),
|
||||
},
|
||||
};
|
||||
});
|
||||
|
||||
@@ -45,6 +56,8 @@ describe('ZonePageClient', () => {
|
||||
vi.mocked(ZoneService.deleteById).mockReset();
|
||||
vi.mocked(TlsCertificateService.list).mockReset();
|
||||
vi.mocked(TlsCertificateService.list).mockResolvedValue([]);
|
||||
vi.mocked(ProxyRouteService.list).mockReset();
|
||||
vi.mocked(ProxyRouteService.list).mockResolvedValue([]);
|
||||
});
|
||||
|
||||
it('loads the overview by stable ID and exposes all tabs including empty domains', async () => {
|
||||
@@ -61,7 +74,7 @@ describe('ZonePageClient', () => {
|
||||
expect(await screen.findByRole('heading', {name: 'arctel.de'})).toBeVisible();
|
||||
expect(screen.getByRole('tab', {name: '域名 (0)'})).toBeVisible();
|
||||
expect(screen.getByRole('tab', {name: '证书 (0)'})).toBeVisible();
|
||||
expect(screen.getByRole('tab', {name: '路由'})).toBeVisible();
|
||||
expect(screen.queryByRole('tab', {name: '路由'})).not.toBeInTheDocument();
|
||||
expect(screen.getByRole('tab', {name: '设置'})).toBeVisible();
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user