1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
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,
};
|