Some checks failed
Test Suite / playwright-tests (push) Waiting to run
Deploy Development / deploy (push) Successful in 40s
Test Suite / pytest-backend (push) Successful in 36s
Test Suite / lint-backend (push) Successful in 0s
Test Suite / build-frontend (push) Successful in 14s
Test Suite / k6 /health Baseline (push) Has been cancelled
- Updated the TrainingFrameworkProgramsListPage to utilize new CSS classes for improved layout and styling. - Removed deprecated components and functions, streamlining the codebase for better maintainability. - Introduced utility functions for splitting aggregated strings, enhancing data handling for framework program attributes. - Enhanced the user interface with loading and empty state indicators, improving overall user experience.
47 lines
1.8 KiB
JavaScript
47 lines
1.8 KiB
JavaScript
import { describe, expect, it } from 'vitest'
|
|
import {
|
|
collectDistinctSessionDurationsMinutes,
|
|
filterFrameworkPrograms,
|
|
hasActiveFrameworkImportFilters,
|
|
splitFrameworkCommaAgg,
|
|
splitFrameworkGoalsAgg,
|
|
} from './frameworkProgramListHelpers.js'
|
|
|
|
describe('frameworkProgramListHelpers', () => {
|
|
const rows = [
|
|
{ id: 1, title: 'A', session_duration_min: 60, session_duration_max: 60, focus_area_ids: [1] },
|
|
{ id: 2, title: 'B', session_duration_min: 90, session_duration_max: 120, focus_area_ids: [2] },
|
|
{ id: 3, title: 'C', session_duration_min: null, session_duration_max: null },
|
|
]
|
|
|
|
it('collectDistinctSessionDurationsMinutes', () => {
|
|
expect(collectDistinctSessionDurationsMinutes(rows)).toEqual([60, 90, 120])
|
|
})
|
|
|
|
it('filterFrameworkPrograms duration preset', () => {
|
|
const out = filterFrameworkPrograms(rows, { durationMode: 'preset', durationPresetMin: 90 })
|
|
expect(out.map((r) => r.id)).toEqual([2])
|
|
})
|
|
|
|
it('filterFrameworkPrograms duration range overlap', () => {
|
|
const out = filterFrameworkPrograms(rows, {
|
|
durationMode: 'range',
|
|
durationRangeFrom: '75',
|
|
durationRangeTo: '100',
|
|
})
|
|
expect(out.map((r) => r.id)).toEqual([2])
|
|
})
|
|
|
|
it('hasActiveFrameworkImportFilters', () => {
|
|
expect(hasActiveFrameworkImportFilters({})).toBe(false)
|
|
expect(hasActiveFrameworkImportFilters({ query: 'x' })).toBe(true)
|
|
expect(hasActiveFrameworkImportFilters({ durationMode: 'preset', durationPresetMin: 60 })).toBe(true)
|
|
})
|
|
|
|
it('splitFrameworkCommaAgg and splitFrameworkGoalsAgg', () => {
|
|
expect(splitFrameworkCommaAgg('Technik, Kondition')).toEqual(['Technik', 'Kondition'])
|
|
expect(splitFrameworkCommaAgg('')).toEqual([])
|
|
expect(splitFrameworkGoalsAgg('Gürtel | Koordination')).toEqual(['Gürtel', 'Koordination'])
|
|
})
|
|
})
|