fix: defer attendance settlement until lesson end
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { describe, expect, it } from 'vitest';
|
||||
import {
|
||||
canPullAttendance,
|
||||
filterLessonAttendanceRecords,
|
||||
getAttendanceExperience,
|
||||
getPunchDisplayInfo,
|
||||
getSchedulePhase,
|
||||
@@ -68,6 +69,27 @@ describe('lesson check-in summary', () => {
|
||||
});
|
||||
|
||||
|
||||
describe('lesson attendance filters', () => {
|
||||
const records = [
|
||||
{ id: 1, student: { name: '张三' }, status: 'present' },
|
||||
{ id: 2, student: { name: '李四' }, status: 'late' },
|
||||
{ id: 3, student: { name: '王五' }, status: 'pending' },
|
||||
{ id: 4, student: { name: '赵六' }, status: 'absent' },
|
||||
];
|
||||
|
||||
it('searches students by name and ignores surrounding whitespace', () => {
|
||||
expect(filterLessonAttendanceRecords(records, ' 张 ', 'all').map((item) => item.id)).toEqual([1]);
|
||||
});
|
||||
|
||||
it('groups present and late as checked in', () => {
|
||||
expect(filterLessonAttendanceRecords(records, '', 'checked_in').map((item) => item.id)).toEqual([1, 2]);
|
||||
});
|
||||
|
||||
it('groups pending and absent as not checked in and combines with search', () => {
|
||||
expect(filterLessonAttendanceRecords(records, '王', 'not_checked_in').map((item) => item.id)).toEqual([3]);
|
||||
});
|
||||
});
|
||||
|
||||
describe('lesson punch device display', () => {
|
||||
it('labels attendance machine punches with the machine name and id', () => {
|
||||
expect(
|
||||
|
||||
Reference in New Issue
Block a user