8522358427
新增测试: - use-page-views.test.ts: 测试页面浏览跟踪功能 - api-response.test.ts: 测试API响应辅助函数 - analytics.test.ts: 优化分析函数测试 覆盖率提升: - branches: 40% -> 41.62% - functions: 45% -> 47.3% - lines: 50% -> 52.82% - statements: 50% -> 51.82% 更新覆盖率阈值到当前水平
71 lines
2.1 KiB
TypeScript
71 lines
2.1 KiB
TypeScript
import {
|
|
pageview,
|
|
event,
|
|
trackContactForm,
|
|
trackButtonClick,
|
|
trackPageView,
|
|
GA_MEASUREMENT_ID,
|
|
} from './analytics';
|
|
|
|
describe('analytics', () => {
|
|
describe('exports', () => {
|
|
it('应该导出所有必要的函数', () => {
|
|
expect(pageview).toBeDefined();
|
|
expect(event).toBeDefined();
|
|
expect(trackContactForm).toBeDefined();
|
|
expect(trackButtonClick).toBeDefined();
|
|
expect(trackPageView).toBeDefined();
|
|
expect(GA_MEASUREMENT_ID).toBeDefined();
|
|
});
|
|
|
|
it('所有函数应该是可调用的', () => {
|
|
expect(() => pageview('/test')).not.toThrow();
|
|
expect(() => event('click', 'button')).not.toThrow();
|
|
expect(() => trackContactForm({ name: 'test' })).not.toThrow();
|
|
expect(() => trackButtonClick('submit', 'header')).not.toThrow();
|
|
expect(() => trackPageView('Home', '/home')).not.toThrow();
|
|
});
|
|
});
|
|
|
|
describe('pageview', () => {
|
|
it('应该接受URL参数', () => {
|
|
expect(() => pageview('/test-page')).not.toThrow();
|
|
expect(() => pageview('/another-page?param=value')).not.toThrow();
|
|
});
|
|
});
|
|
|
|
describe('event', () => {
|
|
it('应该接受必需参数', () => {
|
|
expect(() => event('click', 'button')).not.toThrow();
|
|
});
|
|
|
|
it('应该接受可选参数', () => {
|
|
expect(() => event('click', 'button', 'label', 1)).not.toThrow();
|
|
});
|
|
});
|
|
|
|
describe('trackContactForm', () => {
|
|
it('应该接受表单数据', () => {
|
|
const formData = {
|
|
name: 'John Doe',
|
|
email: 'john@example.com',
|
|
message: 'Test message',
|
|
};
|
|
expect(() => trackContactForm(formData)).not.toThrow();
|
|
});
|
|
});
|
|
|
|
describe('trackButtonClick', () => {
|
|
it('应该接受按钮名称和位置', () => {
|
|
expect(() => trackButtonClick('submit', 'header')).not.toThrow();
|
|
expect(() => trackButtonClick('cancel', 'footer')).not.toThrow();
|
|
});
|
|
});
|
|
|
|
describe('trackPageView', () => {
|
|
it('应该接受页面标题和路径', () => {
|
|
expect(() => trackPageView('Home Page', '/home')).not.toThrow();
|
|
expect(() => trackPageView('About Page', '/about')).not.toThrow();
|
|
});
|
|
});
|
|
}); |