|
@@ -321,6 +321,26 @@ describe('home learning modules', () => {
|
|
|
});
|
|
});
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
|
|
+ it('renders scheduled duration for new lessons without duplicating legacy duration labels', async () => {
|
|
|
|
|
+ user.set({ userId: 300, userName: 'coach', honeyName: '钱老师', groupId: 3 });
|
|
|
|
|
+ session.groupId.set(3);
|
|
|
|
|
+ const harness = await RouterTestingHarness.create('/pages/home/shop');
|
|
|
|
|
+ const center = harness.fixture.debugElement.query(By.directive(CourseCenterPageComponent)).componentInstance as CourseCenterPageComponent;
|
|
|
|
|
+ center.scheduleRange.set('all');
|
|
|
|
|
+ center.schedules.set([
|
|
|
|
|
+ { GeneralID: 1, Title: '可爱同学(单词课)', durationMinutes: 30, bxrq: '2026-10-19', sdsd: '15:00', dszt: 0 },
|
|
|
|
|
+ { GeneralID: 2, Title: '小黄(单词课)', durationMinutes: 60, bxrq: '2026-10-19', sdsd: '19:00', dszt: 0 },
|
|
|
|
|
+ { GeneralID: 3, Title: '熊小俊(60分钟练习)', durationMinutes: 60, bxrq: '2026-10-19', sdsd: '14:00', dszt: 0 },
|
|
|
|
|
+ ]);
|
|
|
|
|
+ harness.fixture.detectChanges();
|
|
|
|
|
+ const titles = Array.from(harness.routeNativeElement!.querySelectorAll('.schedule-copy strong')).map(element => element.textContent?.trim());
|
|
|
|
|
+ expect(titles).toEqual(['熊小俊(60分钟练习)', '可爱同学(单词课) · 30分钟', '小黄(单词课) · 60分钟']);
|
|
|
|
|
+ expect(center.scheduleTitle({ Title: '旧课(60分钟练习)', durationMinutes: 30 })).toBe('旧课(30分钟练习)');
|
|
|
|
|
+ for (const durationMinutes of [undefined, null, 0, -30, 'invalid']) {
|
|
|
|
|
+ expect(center.scheduleTitle({ Title: '旧课(60分钟练习)', durationMinutes })).toBe('旧课(60分钟练习)');
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
it('keeps all today tasks cached across navigation and visibility', async () => {
|
|
it('keeps all today tasks cached across navigation and visibility', async () => {
|
|
|
user.set({ userId: 300, userName: 'coach', honeyName: '张老师', groupId: 3 });
|
|
user.set({ userId: 300, userName: 'coach', honeyName: '张老师', groupId: 3 });
|
|
|
session.groupId.set(3);
|
|
session.groupId.set(3);
|