import { Graduation, GraduationChange } from "./graduation-common.js"; import { Student } from "./student-common.js"; import { buildGroups } from "./group.js"; const students = [ new Student(1, 'foo bar', 'test'), new Student(2, 'maxi mustermensch', 'test'), new Student(3, 'b b b', '5a') ]; // Build the groups from our mock students buildGroups(students); function fetchStudentsMock() { return new Promise((resolve) => { resolve(students); }); } function fetchSubjectsMock() { return new Promise((resolve) => { resolve(['Mathe', 'Deutsch', 'Englisch']); }); } function fetchProgressMock(subject) { return new Promise((resolve) => { if (subject === "Mathe") { resolve([40, 10, 3]); } else if (subject === "Deutsch") { resolve([10, 2, 0]); } else if (subject === "Englisch") { resolve([50, 25, 10]); } else { resolve([0, 0, 0]); } }); } const graduationChanges = {}; for (const s of students) { switch (s.name) { case "foo bar": graduationChanges[s.name] = [ GraduationChange.newGreenPointChange("Gute Arbeit", "Florian Fischer"), GraduationChange.newOrangePointChange("", "Florian Fischer"), ]; break; case "maxi mustermensch": graduationChanges[s.name] = [ GraduationChange.newGreenPointChange("", "Florian Fischer"), GraduationChange.newGreenPointChange("", "Florian Fischer"), new GraduationChange(new Date(), "ObservationStart", "", "Florian Fischer", ""), ]; break; case "b b b": graduationChanges[s.name] = [ GraduationChange.newRedPointChange("", "Florian Fischer"), ]; } // Build the student's graduation Graduation.from(s, graduationChanges[s.name]); } function fetchGraduationMock(s) { return new Promise((resolve) => { const changes = graduationChanges[s.name]; if (!changes) { resolve(null); } else { resolve(Graduation.from(s, changes)); } }); } function fetchPublicGraduationMock(s) { return new Promise((resolve) => { const changes = graduationChanges[s.name]; if (!changes) { resolve(null); } else { resolve(Graduation.from(s, changes.filter((change) => change.isPublic()))); } }); } function submitGraduationChangeMock(s, c) { console.assert(s.graduation, "no graduation"); s.graduation.addChange(c); } function submitObservationMock(s, o) { console.assert(s.graduation, "no graduation"); console.assert(s.graduation.observation, "no observation period"); s.graduation.observation.addObservation(o); } export { fetchStudentsMock, fetchSubjectsMock, fetchProgressMock, fetchGraduationMock, fetchPublicGraduationMock, submitGraduationChangeMock, submitObservationMock, };