2023-08-02 17:12:15 +00:00
|
|
|
'use strict';
|
|
|
|
const tapahtumaTyypit = {
|
|
|
|
lisääAste: 'lisääAste',
|
|
|
|
poistaAste: 'poistaAste',
|
|
|
|
muutaAste: 'muutaAste',
|
|
|
|
|
|
|
|
lisääLuokka: 'lisääLuokka',
|
|
|
|
poistaLuokka: 'poistaLuokka',
|
2023-08-07 15:51:11 +00:00
|
|
|
|
|
|
|
lisääOpettaja: 'lisääOpettaja',
|
|
|
|
poistaOpettaja: 'poistaOpettaja',
|
2023-08-08 16:08:44 +00:00
|
|
|
|
2023-08-11 16:22:16 +00:00
|
|
|
lisääTila: 'lisääTila',
|
|
|
|
poistaTila: 'poistaTila',
|
|
|
|
|
2023-08-08 16:08:44 +00:00
|
|
|
lisääTunti: 'lisääTunti',
|
|
|
|
poistaTunti: 'poistaTunti',
|
2023-08-02 17:12:15 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
class Tapahtuma {
|
|
|
|
constructor(tyyppi, argumentit) {
|
|
|
|
this.tyyppi = tyyppi;
|
|
|
|
this.argumentit = argumentit;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
let historia, tulevaisuus;
|
2023-08-11 16:22:16 +00:00
|
|
|
let luokkaAsteet, opettajat, tilat, tunnit;
|
2023-08-02 17:12:15 +00:00
|
|
|
alustaMalli();
|
|
|
|
|
|
|
|
function alustaMalli() {
|
|
|
|
historia = [];
|
|
|
|
tulevaisuus = [];
|
|
|
|
luokkaAsteet = new LuokkaAsteet();
|
2023-08-07 15:51:11 +00:00
|
|
|
opettajat = new Opettajat();
|
2023-08-11 16:22:16 +00:00
|
|
|
tilat = new Tilat();
|
2023-08-08 16:08:44 +00:00
|
|
|
tunnit = new Tunnit();
|
2023-08-02 17:12:15 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
function suorita(tyyppi, ...argumentit) {
|
|
|
|
let paluuarvo = undefined;
|
|
|
|
switch (tyyppi) {
|
|
|
|
case tapahtumaTyypit.lisääAste:
|
|
|
|
assertRange('lisääAste argumentit määrä', argumentit.length, 0, 1);
|
|
|
|
paluuarvo = luokkaAsteet.lisää(...argumentit)
|
|
|
|
break;
|
|
|
|
case tapahtumaTyypit.poistaAste:
|
|
|
|
assertEq('poistaAste argumentit määrä', argumentit.length, 1);
|
2023-08-08 16:08:44 +00:00
|
|
|
let [poistettuAste] = argumentit;
|
|
|
|
luokkaAsteet.poista(poistettuAste);
|
|
|
|
// Poista poistettujen luokka-asteiden luokat tunneista
|
2023-08-09 21:44:56 +00:00
|
|
|
for (let [_, tunti] of tunnit.tunnit) {
|
|
|
|
for (let luokka of tunti.luokat.alkiot()) {
|
2023-08-08 16:08:44 +00:00
|
|
|
let luokanAste = parseInt(luokka[0]);
|
2023-08-09 21:44:56 +00:00
|
|
|
if (luokanAste === poistettuAste) {
|
|
|
|
tunti.luokat.poista(luokka);
|
2023-08-08 16:08:44 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2023-08-02 17:12:15 +00:00
|
|
|
break;
|
|
|
|
case tapahtumaTyypit.muutaAste:
|
|
|
|
assertEq('muutaAste argumentit määrä', argumentit.length, 2);
|
2023-08-08 16:08:44 +00:00
|
|
|
let [vanhaAste, uusiAste] = argumentit;
|
|
|
|
luokkaAsteet.muuta(vanhaAste, uusiAste);
|
|
|
|
// Muuta muutetut luokka-asteet tunneissa
|
2023-08-09 21:44:56 +00:00
|
|
|
for (let [_, tunti] of tunnit.tunnit) {
|
|
|
|
for (let luokka of tunti.luokat.alkiot()) {
|
2023-08-08 16:08:44 +00:00
|
|
|
let luokanAste = parseInt(luokka[0]);
|
|
|
|
if (luokanAste === vanhaAste) {
|
2023-08-09 21:44:56 +00:00
|
|
|
let uusiLuokka = `${uusiAste}${luokka.slice(1)}`;
|
|
|
|
tunti.luokat.poista(luokka);
|
|
|
|
tunti.luokat.lisää(uusiLuokka);
|
2023-08-08 16:08:44 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2023-08-02 17:12:15 +00:00
|
|
|
break;
|
2023-08-07 15:51:11 +00:00
|
|
|
|
2023-08-02 17:12:15 +00:00
|
|
|
case tapahtumaTyypit.lisääLuokka:
|
|
|
|
assertEq('lisääLuokka argumentit määrä', argumentit.length, 1);
|
|
|
|
luokkaAsteet.asteet[argumentit[0]].lisää();
|
|
|
|
break;
|
|
|
|
case tapahtumaTyypit.poistaLuokka:
|
|
|
|
assertEq('poistaLuokka argumentit määrä', argumentit.length, 1);
|
2023-08-08 16:08:44 +00:00
|
|
|
let [aste] = argumentit;
|
|
|
|
luokkaAsteet.asteet[aste].poista();
|
|
|
|
// Poista luokka jota ei enää ole asteella tunneista
|
2023-08-09 21:44:56 +00:00
|
|
|
for (let [_, tunti] of tunnit.tunnit) {
|
|
|
|
for (let luokka of tunti.luokat.alkiot()) {
|
|
|
|
if (luokkaAsteet.luokat().indexOf(luokka) === -1) {
|
|
|
|
tunti.luokat.poista(luokka);
|
2023-08-08 16:08:44 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2023-08-02 17:12:15 +00:00
|
|
|
break;
|
2023-08-07 15:51:11 +00:00
|
|
|
|
|
|
|
case tapahtumaTyypit.lisääOpettaja:
|
|
|
|
assertEq('lisääOpettaja argumentit määrä', argumentit.length, 2);
|
2023-08-08 16:08:44 +00:00
|
|
|
opettajat.lisää(...argumentit);
|
2023-08-07 15:51:11 +00:00
|
|
|
break;
|
|
|
|
case tapahtumaTyypit.poistaOpettaja:
|
|
|
|
assertEq('poistaOpettaja argumentit määrä', argumentit.length, 1);
|
2023-08-08 16:08:44 +00:00
|
|
|
let [poistettuOpettaja] = argumentit;
|
|
|
|
opettajat.poista(poistettuOpettaja);
|
|
|
|
// Poista opettaja joita ei enää ole tunneista
|
2023-08-09 21:44:56 +00:00
|
|
|
for (let [_, tunti] of tunnit.tunnit) {
|
2023-08-11 15:22:11 +00:00
|
|
|
tunti.opettajaLyhenteet.poista(poistettuOpettaja);
|
2023-08-08 16:08:44 +00:00
|
|
|
}
|
|
|
|
break;
|
|
|
|
|
2023-08-11 16:22:16 +00:00
|
|
|
case tapahtumaTyypit.lisääTila:
|
|
|
|
assertEq('lisääTila argumentit määrä', argumentit.length, 1);
|
|
|
|
paluuarvo = tilat.lisää(...argumentit);
|
|
|
|
break;
|
|
|
|
case tapahtumaTyypit.poistaTila:
|
|
|
|
assertEq('poistaTila argumentit määrä', argumentit.length, 1);
|
|
|
|
let [poistettuTila] = argumentit;
|
|
|
|
tilat.poista(poistettuTila);
|
|
|
|
for (let [_, tunti] of tunnit.tunnit) {
|
|
|
|
tunti.tilat.poista(poistettuTila);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
|
2023-08-08 16:08:44 +00:00
|
|
|
case tapahtumaTyypit.lisääTunti:
|
2023-08-11 16:28:04 +00:00
|
|
|
assertEq('lisääTunti argumentit määrä', argumentit.length, 4);
|
2023-08-08 16:08:44 +00:00
|
|
|
paluuarvo = tunnit.lisää(...argumentit);
|
|
|
|
break;
|
|
|
|
case tapahtumaTyypit.poistaTunti:
|
|
|
|
assertEq('poistaTunti argumentit määrä', argumentit.length, 1);
|
|
|
|
tunnit.poista(...argumentit);
|
2023-08-07 15:51:11 +00:00
|
|
|
break;
|
|
|
|
|
2023-08-02 17:12:15 +00:00
|
|
|
default:
|
|
|
|
throw new Error(`tuntematon tapahtumatyyppi ${tyyppi}`);
|
|
|
|
}
|
|
|
|
historia.push(new Tapahtuma(tyyppi, argumentit));
|
|
|
|
tulevaisuus = [];
|
|
|
|
return paluuarvo;
|
|
|
|
}
|
|
|
|
|
|
|
|
function kumoa() {
|
|
|
|
if (historia.length === 0) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
// Kumoaminen tapahtuu ottamalla historia uusinta tapahtumaa lukuun
|
|
|
|
// ottamatta ja suorittamalla se siihen asti uudestaan tyhjältä mallilta
|
|
|
|
let kumottu = historia.pop();
|
|
|
|
let uusi_tulevaisuus = tulevaisuus.concat(kumottu);
|
|
|
|
let vanha_historia = historia;
|
|
|
|
alustaMalli();
|
|
|
|
for (let {tyyppi, argumentit} of vanha_historia) {
|
|
|
|
suorita(tyyppi, ...argumentit);
|
|
|
|
}
|
|
|
|
tulevaisuus = uusi_tulevaisuus;
|
|
|
|
}
|
|
|
|
|
|
|
|
function teeUudelleen() {
|
|
|
|
if (tulevaisuus.length === 0) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
let {tyyppi, argumentit} = tulevaisuus.pop();
|
|
|
|
// Tulevaisuus tulee tallentaa, sillä suorita() tuhoaa sen
|
|
|
|
let uusi_tulevaisuus = tulevaisuus;
|
|
|
|
suorita(tyyppi, ...argumentit);
|
|
|
|
tulevaisuus = uusi_tulevaisuus;
|
|
|
|
}
|
|
|
|
|
|
|
|
testi('mallin alustaminen', () => {
|
|
|
|
historia = undefined;
|
|
|
|
tulevaisuus = undefined;
|
|
|
|
luokkaAsteet = undefined;
|
2023-08-07 15:51:11 +00:00
|
|
|
opettajat = undefined;
|
2023-08-11 16:22:16 +00:00
|
|
|
tilat = undefined;
|
2023-08-08 16:08:44 +00:00
|
|
|
tunnit = undefined;
|
2023-08-02 17:12:15 +00:00
|
|
|
alustaMalli();
|
|
|
|
assertNe('historia', historia, undefined);
|
|
|
|
assertNe('tulevaisuus', tulevaisuus, undefined);
|
|
|
|
assertNe('luokkaAsteet', luokkaAsteet, undefined);
|
2023-08-07 15:51:11 +00:00
|
|
|
assertNe('opettajat', opettajat, undefined);
|
2023-08-11 16:22:16 +00:00
|
|
|
assertNe('tilat', tilat, undefined);
|
2023-08-08 16:08:44 +00:00
|
|
|
assertNe('tunnit', tunnit, undefined);
|
2023-08-02 17:12:15 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
testi('tapahtumahistoria', () => {
|
|
|
|
alustaMalli();
|
|
|
|
suorita(tapahtumaTyypit.lisääAste);
|
|
|
|
suorita(tapahtumaTyypit.poistaAste, 1);
|
|
|
|
assertEq('historia.length', historia.length, 2);
|
|
|
|
assertEq('historia[0].tyyppi', historia[0].tyyppi, tapahtumaTyypit.lisääAste);
|
|
|
|
assertEq('historia[0].argumentit.length', historia[0].argumentit.length, 0);
|
|
|
|
assertEq('historia[1].tyyppi', historia[1].tyyppi, tapahtumaTyypit.poistaAste);
|
|
|
|
assertEq('historia[1].argumentit.length', historia[1].argumentit.length, 1);
|
|
|
|
assertEq('historia[1].argumentit[0]', historia[1].argumentit[0], 1);
|
|
|
|
assertThrow('poistaAste 1', 'luokka-astetta 1 ei ole olemassa', () => {
|
|
|
|
suorita(tapahtumaTyypit.poistaAste, 1);
|
|
|
|
});
|
|
|
|
assertEq('historia.length poikkeuksen jälkeen', historia.length, 2);
|
|
|
|
alustaMalli();
|
|
|
|
});
|
|
|
|
|
|
|
|
testi('kumoamiminen', () => {
|
|
|
|
alustaMalli();
|
|
|
|
kumoa();
|
|
|
|
suorita(tapahtumaTyypit.lisääAste);
|
|
|
|
suorita(tapahtumaTyypit.lisääLuokka, 1);
|
|
|
|
suorita(tapahtumaTyypit.lisääAste);
|
|
|
|
suorita(tapahtumaTyypit.lisääLuokka, 2);
|
|
|
|
suorita(tapahtumaTyypit.lisääLuokka, 1);
|
2023-08-07 14:56:48 +00:00
|
|
|
assertEq('aluksi 1. aste', luokkaAsteet.asteet[1].luokat(), ['A', 'B', 'C']);
|
|
|
|
assertEq('aluksi 2. aste', luokkaAsteet.asteet[2].luokat(), ['A', 'B']);
|
2023-08-02 17:12:15 +00:00
|
|
|
kumoa();
|
2023-08-07 14:56:48 +00:00
|
|
|
assertEq('kerran 1. aste', luokkaAsteet.asteet[1].luokat(), ['A', 'B']);
|
|
|
|
assertEq('kerran 2. aste', luokkaAsteet.asteet[2].luokat(), ['A', 'B']);
|
2023-08-02 17:12:15 +00:00
|
|
|
kumoa();
|
2023-08-07 14:56:48 +00:00
|
|
|
assertEq('kahdesti 1. aste', luokkaAsteet.asteet[1].luokat(), ['A', 'B']);
|
|
|
|
assertEq('kahdesti 2. aste', luokkaAsteet.asteet[2].luokat(), ['A']);
|
2023-08-02 17:12:15 +00:00
|
|
|
kumoa();
|
2023-08-07 14:56:48 +00:00
|
|
|
assertEq('kolmesti 1. aste', luokkaAsteet.asteet[1].luokat(), ['A', 'B']);
|
2023-08-02 17:12:15 +00:00
|
|
|
assertEq('kolmesti 2. aste', luokkaAsteet.asteet[2], undefined);
|
|
|
|
kumoa();
|
2023-08-07 14:56:48 +00:00
|
|
|
assertEq('neljästi 1. aste', luokkaAsteet.asteet[1].luokat(), ['A']);
|
2023-08-02 17:12:15 +00:00
|
|
|
kumoa();
|
|
|
|
assertEq('viidesti 1. aste', luokkaAsteet.asteet[1], undefined);
|
|
|
|
alustaMalli();
|
|
|
|
});
|
|
|
|
|
|
|
|
testi('uudelleen tekeminen', () => {
|
|
|
|
alustaMalli();
|
|
|
|
teeUudelleen();
|
|
|
|
suorita(tapahtumaTyypit.lisääAste);
|
|
|
|
suorita(tapahtumaTyypit.lisääAste);
|
|
|
|
suorita(tapahtumaTyypit.lisääLuokka, 1);
|
|
|
|
suorita(tapahtumaTyypit.lisääLuokka, 2);
|
|
|
|
suorita(tapahtumaTyypit.lisääLuokka, 2);
|
|
|
|
kumoa();
|
|
|
|
kumoa();
|
|
|
|
kumoa();
|
2023-08-07 14:56:48 +00:00
|
|
|
assertEq('aluksi 1. aste', luokkaAsteet.asteet[1].luokat(), ['A']);
|
|
|
|
assertEq('aluksi 2. aste', luokkaAsteet.asteet[2].luokat(), ['A']);
|
2023-08-02 17:12:15 +00:00
|
|
|
teeUudelleen();
|
2023-08-07 14:56:48 +00:00
|
|
|
assertEq('kerran 1. aste', luokkaAsteet.asteet[1].luokat(), ['A', 'B']);
|
|
|
|
assertEq('kerran 2. aste', luokkaAsteet.asteet[2].luokat(), ['A']);
|
2023-08-02 17:12:15 +00:00
|
|
|
teeUudelleen();
|
2023-08-07 14:56:48 +00:00
|
|
|
assertEq('kahdesti 1. aste', luokkaAsteet.asteet[1].luokat(), ['A', 'B']);
|
|
|
|
assertEq('kahdesti 2. aste', luokkaAsteet.asteet[2].luokat(), ['A', 'B']);
|
2023-08-02 17:12:15 +00:00
|
|
|
suorita(tapahtumaTyypit.lisääLuokka, 1);
|
|
|
|
teeUudelleen();
|
2023-08-07 14:56:48 +00:00
|
|
|
assertEq('kolmesti 1. aste', luokkaAsteet.asteet[1].luokat(), ['A', 'B', 'C']);
|
|
|
|
assertEq('kolmesti 2. aste', luokkaAsteet.asteet[2].luokat(), ['A', 'B']);
|
2023-08-02 17:12:15 +00:00
|
|
|
alustaMalli();
|
|
|
|
});
|
|
|
|
|
|
|
|
testi('asteiden käsittely', () => {
|
|
|
|
alustaMalli();
|
|
|
|
assertEq('lisää', suorita(tapahtumaTyypit.lisääAste), 1);
|
|
|
|
suorita(tapahtumaTyypit.muutaAste, 1, 2);
|
|
|
|
assertEq('muutettua seuraava aste', luokkaAsteet.seuraavaAste(), 3);
|
|
|
|
suorita(tapahtumaTyypit.poistaAste, 2);
|
|
|
|
assertEq('lopuksi seuraava aste', luokkaAsteet.seuraavaAste(), 1);
|
|
|
|
alustaMalli();
|
|
|
|
});
|
|
|
|
|
|
|
|
testi('luokkien käsittely', () => {
|
|
|
|
alustaMalli();
|
|
|
|
suorita(tapahtumaTyypit.lisääAste);
|
2023-08-07 14:56:48 +00:00
|
|
|
assertEq('aluksi', luokkaAsteet.asteet[1].luokat(), ['A']);
|
2023-08-02 17:12:15 +00:00
|
|
|
suorita(tapahtumaTyypit.lisääLuokka, 1);
|
2023-08-07 14:56:48 +00:00
|
|
|
assertEq('lisättyä', luokkaAsteet.asteet[1].luokat(), ['A', 'B']);
|
2023-08-02 17:12:15 +00:00
|
|
|
suorita(tapahtumaTyypit.poistaLuokka, 1);
|
2023-08-07 14:56:48 +00:00
|
|
|
assertEq('poistettua', luokkaAsteet.asteet[1].luokat(), ['A']);
|
2023-08-02 17:12:15 +00:00
|
|
|
alustaMalli();
|
|
|
|
});
|
2023-08-07 15:51:11 +00:00
|
|
|
|
|
|
|
testi('opettajien käsittely', () => {
|
|
|
|
alustaMalli();
|
|
|
|
assertEq('aluksi', opettajat.opettajat(), []);
|
|
|
|
suorita(tapahtumaTyypit.lisääOpettaja, 'MM', 'Maija Meikäläinen');
|
|
|
|
assertEq('lisättyä', opettajat.opettajat(), [['MM', 'Maija Meikäläinen']]);
|
|
|
|
suorita(tapahtumaTyypit.poistaOpettaja, 'MM');
|
|
|
|
assertEq('poistettua', opettajat.opettajat(), []);
|
|
|
|
});
|
2023-08-08 16:08:44 +00:00
|
|
|
|
2023-08-11 16:22:16 +00:00
|
|
|
testi('tilojen käsittely', () => {
|
|
|
|
alustaMalli();
|
|
|
|
assertEq('aluksi', tilat.tilat(), []);
|
|
|
|
assertEq('1A', suorita(tapahtumaTyypit.lisääTila, '1A'), 0);
|
|
|
|
assertEq('lisättyä', tilat.tilat(), [[0, '1A']]);
|
|
|
|
suorita(tapahtumaTyypit.poistaTila, 0);
|
|
|
|
assertEq('poistettua', tilat.tilat(), []);
|
|
|
|
alustaMalli();
|
|
|
|
});
|
|
|
|
|
2023-08-08 16:08:44 +00:00
|
|
|
testi('tuntien käsittely', () => {
|
|
|
|
alustaMalli();
|
|
|
|
suorita(tapahtumaTyypit.lisääAste);
|
|
|
|
suorita(tapahtumaTyypit.lisääAste, 5);
|
|
|
|
suorita(tapahtumaTyypit.lisääLuokka, 5);
|
|
|
|
suorita(tapahtumaTyypit.lisääOpettaja, 'KV', 'Kari Virtanen');
|
|
|
|
suorita(tapahtumaTyypit.lisääOpettaja, 'AS', 'Aili Savolainen');
|
|
|
|
suorita(tapahtumaTyypit.lisääOpettaja, 'MM', 'Maija Meikäläinen');
|
2023-08-11 16:22:16 +00:00
|
|
|
suorita(tapahtumaTyypit.lisääTila, '1A');
|
|
|
|
suorita(tapahtumaTyypit.lisääTila, '5B');
|
|
|
|
suorita(tapahtumaTyypit.lisääTila, 'Käsityöluokka');
|
2023-08-08 16:08:44 +00:00
|
|
|
assertEq('aluksi', tunnit.järjestyksessä(), []);
|
|
|
|
|
|
|
|
assertEq('historia',
|
2023-08-11 16:28:04 +00:00
|
|
|
suorita(tapahtumaTyypit.lisääTunti, 'Historia', '5B', 'KV', 1),
|
2023-08-08 16:08:44 +00:00
|
|
|
0
|
|
|
|
);
|
|
|
|
assertEq('äidinkieli',
|
2023-08-11 16:28:04 +00:00
|
|
|
suorita(tapahtumaTyypit.lisääTunti, 'Äidinkieli', '1A', 'AS', 0),
|
2023-08-08 16:08:44 +00:00
|
|
|
1
|
|
|
|
);
|
|
|
|
assertEq('kuvataide',
|
2023-08-11 16:28:04 +00:00
|
|
|
suorita(tapahtumaTyypit.lisääTunti, 'Kuvataide', '5A', 'MM', 2),
|
2023-08-08 16:08:44 +00:00
|
|
|
2
|
|
|
|
);
|
|
|
|
assertEq('lisättyä pituus', tunnit.järjestyksessä().length, 3);
|
|
|
|
|
|
|
|
suorita(tapahtumaTyypit.poistaAste, 1);
|
2023-08-09 21:44:56 +00:00
|
|
|
assertEq('aste poistettua 0', tunnit.järjestyksessä()[0][1].luokat.alkiot(), ['5B']);
|
|
|
|
assertEq('aste poistettua 1', tunnit.järjestyksessä()[1][1].luokat.alkiot(), ['5A']);
|
|
|
|
assertEq('aste poistettua 2', tunnit.järjestyksessä()[2][1].luokat.alkiot(), []);
|
2023-08-08 16:08:44 +00:00
|
|
|
|
|
|
|
suorita(tapahtumaTyypit.muutaAste, 5, 6);
|
2023-08-09 21:44:56 +00:00
|
|
|
assertEq('aste muutettua 0', tunnit.järjestyksessä()[0][1].luokat.alkiot(), ['6B']);
|
|
|
|
assertEq('aste muutettua 1', tunnit.järjestyksessä()[1][1].luokat.alkiot(), ['6A']);
|
|
|
|
assertEq('aste muutettua 2', tunnit.järjestyksessä()[2][1].luokat.alkiot(), []);
|
2023-08-08 16:08:44 +00:00
|
|
|
|
|
|
|
suorita(tapahtumaTyypit.poistaLuokka, 6);
|
2023-08-09 21:44:56 +00:00
|
|
|
assertEq('luokka poistettua 0', tunnit.järjestyksessä()[0][1].luokat.alkiot(), []);
|
|
|
|
assertEq('luokka poistettua 1', tunnit.järjestyksessä()[1][1].luokat.alkiot(), ['6A']);
|
|
|
|
assertEq('luokka poistettua 1', tunnit.järjestyksessä()[2][1].luokat.alkiot(), []);
|
2023-08-08 16:08:44 +00:00
|
|
|
|
|
|
|
suorita(tapahtumaTyypit.poistaOpettaja, 'KV');
|
2023-08-09 21:44:56 +00:00
|
|
|
assertEq('opettaja poistettua 0', tunnit.järjestyksessä()[0][1].opettajaLyhenteet.alkiot(), []);
|
|
|
|
assertEq('opettaja poistettua 1', tunnit.järjestyksessä()[1][1].opettajaLyhenteet.alkiot(), ['MM']);
|
|
|
|
assertEq('opettaja poistettua 2', tunnit.järjestyksessä()[2][1].opettajaLyhenteet.alkiot(), ['AS']);
|
2023-08-08 16:08:44 +00:00
|
|
|
|
2023-08-11 16:22:16 +00:00
|
|
|
suorita(tapahtumaTyypit.poistaTila, 1);
|
|
|
|
assertEq('tila poistettua 0', tunnit.järjestyksessä()[0][1].tilat.alkiot(), []);
|
|
|
|
assertEq('tila poistettua 1', tunnit.järjestyksessä()[1][1].tilat.alkiot(), [2]);
|
|
|
|
assertEq('tila poistettua 2', tunnit.järjestyksessä()[2][1].tilat.alkiot(), [0]);
|
|
|
|
|
2023-08-08 16:08:44 +00:00
|
|
|
suorita(tapahtumaTyypit.poistaTunti, 0);
|
|
|
|
assertEq('poistettua pituus', tunnit.järjestyksessä().length, 2);
|
|
|
|
|
|
|
|
alustaMalli();
|
|
|
|
// TODO: Luokkien ja opettajien listojen päivitys
|
|
|
|
});
|