Files
expo-popcore-app/components/blocks/home/TitleBar.test.tsx
imeepos 2757b68756 feat: add TemplateGrid and TitleBar components with tests
- Implemented TemplateGrid component for displaying templates in a grid layout.
- Added calculateCardWidth helper function for dynamic card sizing.
- Created TitleBar component for displaying the title and points with interaction.
- Added unit tests for TemplateGrid and TitleBar components to ensure proper functionality.
- Introduced useStickyTabs and useTabNavigation hooks with tests for managing sticky tab behavior and navigation logic.
- Implemented useTemplateFilter hook for filtering templates based on video content.
- Added comprehensive tests for all new hooks and components to validate behavior and edge cases.
2026-01-26 12:43:20 +08:00

47 lines
1.3 KiB
TypeScript

import { TitleBar } from './TitleBar'
describe('TitleBar Component', () => {
describe('Component Export', () => {
it('should be defined', () => {
expect(TitleBar).toBeDefined()
})
it('should be a function component', () => {
expect(typeof TitleBar).toBe('function')
})
})
describe('Props Interface', () => {
it('should accept points prop', () => {
// TypeScript will validate this at compile time
// This test ensures the component can be called with the prop
const props = { points: 100 }
expect(props.points).toBe(100)
})
it('should accept onPointsPress callback', () => {
const onPointsPress = jest.fn()
expect(typeof onPointsPress).toBe('function')
})
it('should accept onSearchPress callback', () => {
const onSearchPress = jest.fn()
expect(typeof onSearchPress).toBe('function')
})
it('should accept onLayout callback', () => {
const onLayout = jest.fn()
expect(typeof onLayout).toBe('function')
})
})
describe('Default Values', () => {
it('should have default points value of 60', () => {
// This is documented in the component interface
// Default value is set in the component destructuring
const defaultPoints = 60
expect(defaultPoints).toBe(60)
})
})
})