40 lines
1.4 KiB
TypeScript
40 lines
1.4 KiB
TypeScript
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
import { render, screen } from '@testing-library/react';
|
|
import { MemoryRouter } from 'react-router-dom';
|
|
import { ProductCenter } from '@/pages/ProductCenter';
|
|
import { useYinianStore } from '@/stores/yinian';
|
|
import i18n from '@/i18n';
|
|
|
|
describe('Travel Resource Ordering page', () => {
|
|
beforeEach(async () => {
|
|
await i18n.changeLanguage('zh');
|
|
vi.clearAllMocks();
|
|
useYinianStore.setState({
|
|
status: 'authenticated',
|
|
session: {
|
|
authenticated: true,
|
|
user: { id: 'user-1', name: '王管理员' },
|
|
hotels: [{ id: 'workspace-1', name: '智念空间' }],
|
|
currentHotelId: 'workspace-1',
|
|
accessTokenExpiresAt: 100,
|
|
},
|
|
config: null,
|
|
error: null,
|
|
});
|
|
});
|
|
|
|
it('uses a persistent Electron webview partition for embedded login state', () => {
|
|
render(
|
|
<MemoryRouter initialEntries={['/app-center/product-center']}>
|
|
<ProductCenter />
|
|
</MemoryRouter>,
|
|
);
|
|
|
|
const frame = screen.getByTestId('product-center-frame');
|
|
expect(frame.tagName.toLowerCase()).toBe('webview');
|
|
expect(frame).toHaveAttribute('partition', 'persist:yinian-travel-resource-ordering');
|
|
expect(frame).toHaveAttribute('src', expect.stringContaining('https://ticket.nianxx.cn/'));
|
|
expect(frame).toHaveAttribute('src', expect.stringContaining('zhinianEmbed=1'));
|
|
});
|
|
});
|