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(); }); }); });