JSPM

@birhaus/test-utils

3.0.0
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • Downloads 10
    • Score
      100M100P100Q50049F

    BIRHAUS v3.0 Radical Minimalist Testing Framework - Glass morphism validators, generous spacing tests, and v3 component validation utilities

    Package Exports

    • @birhaus/test-utils
    • @birhaus/test-utils/accessibility
    • @birhaus/test-utils/cognitive
    • @birhaus/test-utils/lighthouse
    • @birhaus/test-utils/performance
    • @birhaus/test-utils/spanish
    • @birhaus/test-utils/undo
    • @birhaus/test-utils/v3
    • @birhaus/test-utils/visual

    Readme

    @birhaus/test-utils

    BIRHAUS-specific testing utilities for validating design system compliance and accessibility.

    Installation

    npm install --save-dev @birhaus/test-utils

    Testing Utilities

    BIRHAUS Compliance Validation

    import { expectBirhausCompliance } from '@birhaus/test-utils'
    
    test('button follows BIRHAUS principles', async () => {
      render(<BirhausButton labelEs="Guardar" labelEn="Save" />)
      await expectBirhausCompliance(screen.getByRole('button'))
    })

    Miller's Law Validation

    Ensure components don't exceed cognitive load limits (7±2 items).

    import { expectMillersLawCompliance } from '@birhaus/test-utils'
    
    test('navigation respects Miller\'s Law', async () => {
      render(<Navigation items={navigationItems} />)
      await expectMillersLawCompliance(container, { maxItems: 7 })
    })

    Spanish-first Testing

    Validate bilingual labeling patterns.

    import { expectSpanishFirstLabeling } from '@birhaus/test-utils'
    
    test('component has Spanish-first labels', async () => {
      render(<BirhausCard titleEs="Título" titleEn="Title" />)
      await expectSpanishFirstLabeling(container)
    })

    Accessibility Validation

    import { expectAccessibilityCompliance } from '@birhaus/test-utils'
    
    test('component meets WCAG AA+ standards', async () => {
      render(<BirhausInput labelEs="Nombre" />)
      await expectAccessibilityCompliance(container, { level: 'AA' })
    })

    Undo Pattern Testing

    import { expectUndoPatternCompliance } from '@birhaus/test-utils'
    
    test('destructive action supports undo', async () => {
      render(<DeleteButton undoConfig={{...}} />)
      await expectUndoPatternCompliance(container)
    })

    Performance Testing

    Cognitive Load Metrics

    import { measureCognitiveLoad } from '@birhaus/test-utils'
    
    test('interface has acceptable cognitive load', () => {
      const metrics = measureCognitiveLoad(container)
      expect(metrics.totalElements).toBeLessThan(9) // Miller's Law
      expect(metrics.primaryActions).toBeLessThan(4) // 4-3-1 rule
    })

    Performance Benchmarks

    import { expectPerformanceCompliance } from '@birhaus/test-utils'
    
    test('component meets performance thresholds', async () => {
      const { container } = render(<BirhausDataTable data={largeDataset} />)
      await expectPerformanceCompliance(container, {
        renderTime: 100, // ms
        memoryUsage: 50  // MB
      })
    })

    Mock Data Generators

    Generate BIRHAUS-compliant test data:

    import { 
      generateMockFinancialData,
      generateMockUserData,
      generateMockTransactionHistory 
    } from '@birhaus/test-utils'
    
    const mockDonations = generateMockFinancialData(50)
    const mockMembers = generateMockUserData(25)

    Testing Presets

    Common testing configurations:

    import { birhausTestingPresets } from '@birhaus/test-utils'
    
    // Financial application testing
    const financialTests = birhausTestingPresets.financial({
      currency: 'PYG',
      locale: 'es-PY'
    })
    
    // Educational platform testing  
    const educationTests = birhausTestingPresets.education({
      studentRoles: ['student', 'teacher', 'admin']
    })

    Integration

    Works with popular testing frameworks:

    • Vitest (recommended)
    • Jest
    • React Testing Library
    • Playwright (for E2E testing)

    Setup Example

    // vitest.config.ts
    import { defineConfig } from 'vitest/config'
    import { birhausTestConfig } from '@birhaus/test-utils'
    
    export default defineConfig({
      ...birhausTestConfig,
      test: {
        setupFiles: ['@birhaus/test-utils/setup']
      }
    })

    Custom Matchers

    Additional Jest/Vitest matchers:

    expect(element).toHaveSpanishFirstLabel()
    expect(component).toRespectMillersLaw()
    expect(action).toHaveUndoPattern()
    expect(interface).toBeBirhausCompliant()

    CI/CD Integration

    Use in GitHub Actions:

    - name: BIRHAUS Compliance Tests
      run: |
        npm run test:birhaus
        npm run test:accessibility
        npm run test:performance

    License

    MIT - see LICENSE for details.