Фикс парсинга ФИО преподавателей при отсутствии пробела между ФИО преподавателя и его подгруппой.
This commit is contained in:
2024-10-06 20:43:18 +04:00
parent 5c66c617ff
commit 504ca54124
9 changed files with 1236 additions and 88 deletions

View File

@@ -1,20 +0,0 @@
import { Test, TestingModule } from "@nestjs/testing";
import { FirebaseAdminController } from "./firebase-admin.controller";
describe("FirebaseAdminController", () => {
let controller: FirebaseAdminController;
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
controllers: [FirebaseAdminController],
}).compile();
controller = module.get<FirebaseAdminController>(
FirebaseAdminController,
);
});
it("should be defined", () => {
expect(controller).toBeDefined();
});
});

View File

@@ -1,18 +0,0 @@
import { Test, TestingModule } from "@nestjs/testing";
import { FirebaseAdminService } from "./firebase-admin.service";
describe("FirebaseAdminService", () => {
let service: FirebaseAdminService;
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
providers: [FirebaseAdminService],
}).compile();
service = module.get<FirebaseAdminService>(FirebaseAdminService);
});
it("should be defined", () => {
expect(service).toBeDefined();
});
});

View File

@@ -46,9 +46,9 @@ export class ScheduleParser {
teacherFullNames: Array<string>;
} {
const firstRegex =
/(?:[А-ЯЁ][а-яё]+\s[А-ЯЁ]\.[А-ЯЁ]\.(?:\s\([0-9] подгруппа\))?(?:,\s)?)+$/gm;
/(?:[А-ЯЁ][а-яё]+\s[А-ЯЁ]\.[А-ЯЁ]\.(?:\s?\([0-9] подгруппа\))?(?:,\s)?)+$/gm;
const secondRegex =
/(?:[А-ЯЁ][а-яё]+\s[А-ЯЁ]\.[А-ЯЁ]\.(?:\s\([0-9] подгруппа\))?)+/gm;
/(?:[А-ЯЁ][а-яё]+\s[А-ЯЁ]\.[А-ЯЁ]\.(?:\s?\([0-9] подгруппа\))?)+/gm;
const fm = firstRegex.exec(lessonName);
if (fm === null) return { name: lessonName, teacherFullNames: [] };

View File

@@ -1,20 +0,0 @@
import { Test, TestingModule } from "@nestjs/testing";
import { ScheduleReplacerController } from "./schedule-replacer.controller";
describe("ScheduleReplacerController", () => {
let controller: ScheduleReplacerController;
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
controllers: [ScheduleReplacerController],
}).compile();
controller = module.get<ScheduleReplacerController>(
ScheduleReplacerController,
);
});
it("should be defined", () => {
expect(controller).toBeDefined();
});
});

View File

@@ -1,18 +0,0 @@
import { Test, TestingModule } from "@nestjs/testing";
import { ScheduleReplacerService } from "./schedule-replacer.service";
describe("ScheduleReplacerService", () => {
let service: ScheduleReplacerService;
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
providers: [ScheduleReplacerService],
}).compile();
service = module.get<ScheduleReplacerService>(ScheduleReplacerService);
});
it("should be defined", () => {
expect(service).toBeDefined();
});
});

View File

@@ -2,6 +2,10 @@ import { Test, TestingModule } from "@nestjs/testing";
import { ScheduleService } from "./schedule.service";
import * as fs from "node:fs";
import { CacheModule } from "@nestjs/cache-manager";
import { FirebaseAdminService } from "../firebase-admin/firebase-admin.service";
import { UsersService } from "../users/users.service";
import { PrismaService } from "../prisma/prisma.service";
import { ScheduleReplacerService } from "./schedule-replacer.service";
describe("ScheduleService", () => {
let service: ScheduleService;
@@ -9,7 +13,14 @@ describe("ScheduleService", () => {
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
imports: [CacheModule.register()],
providers: [ScheduleService, CacheModule],
providers: [
ScheduleService,
CacheModule,
FirebaseAdminService,
UsersService,
PrismaService,
ScheduleReplacerService,
],
}).compile();
service = module.get<ScheduleService>(ScheduleService);
@@ -25,11 +36,10 @@ describe("ScheduleService", () => {
const schedule = await service.getGroup(groupName);
expect(schedule.group.name).toBe(groupName);
console.log(schedule.group.days);
expect(schedule.group.days[2].nonNullIndices.length).toBe(3);
expect(schedule.group.days[2].defaultIndices.length).toBe(3);
expect(schedule.group.days[3]).toBeNull();
console.log(schedule.group.days[2].lessons[0].teacherNames);
expect(schedule.group.days[2].lessons[0].teacherNames.length).toBe(
2,
);
});
});
});