import test from "ava"; import {makeEffortTable, calculateSemesterEffort, parseCSV} from "../../src/lib/muster-effort.js"; test("makeEffortTable:", t=>{ const testData = [ {name:"A", code:"DFBI-311", sws:4, ects: 4, homework:1}, {name:"B", code:"DFBI-312", sws:3, ects: 4, homework:2} ]; const html = makeEffortTable(testData); const expected = `
VorlesungAufwand pro Woche in Stunden
A 1
B 2
`; t.is(html, expected); }); test("calculateSemesterEffort: regular array", t => { let testDate = [ {name:"Deutsch 3" , code:"DFBI-311", sws:4, ects: 4}, {name:"Französisch 3", code:"DFBI-312", sws:3, ects: 4} ]; let result = calculateSemesterEffort(testDate); let expected = [ {name:"Deutsch 3" , code:"DFBI-311", sws:4, ects: 4, homework: 5}, {name:"Französisch 3", code:"DFBI-312", sws:3, ects: 4, homework: 5.75}, ] t.deepEqual(result, expected ); }); test("calculateSemesterEffort: empty array", t=>{ let testDate = []; let result = calculateSemesterEffort(testDate); let expected = []; t.deepEqual(result, expected ); }); test("calculateSemesterEffort: lectures without sws or without ects have NaN homework", t=>{ let testDate = [ {name:"Deutsch 3" , code:"DFBI-311", ects: 4}, {name:"Französisch 3", code:"DFBI-312", sws:3}, ]; let result = calculateSemesterEffort(testDate); let expected = [ {code:"DFBI-311", sws: 0, ects: 4, homework:NaN, name:"Deutsch 3"}, {code:"DFBI-312", sws: 3, ects: 0, homework:NaN, name:"Französisch 3"}, ]; t.deepEqual(result, expected ); }); test("parseCSV: regular input", t=> { let csv = ` Deutsch 3; DFBI-311; 4; 4 Französisch 3; DFBI-312; 3; 4`; let data = parseCSV(csv); let expected = [ {name:"Deutsch 3" , code:"DFBI-311", sws:4, ects: 4}, {name:"Französisch 3", code:"DFBI-312", sws:3, ects: 4} ]; t.deepEqual(data, expected); }); test("parseCSV: input without sws", t=> { let csv = ` Deutsch 3; DFBI-311; ; 4 Französisch 3; DFBI-312; 3; 4`; let data = parseCSV(csv); let expected = [ {name:"Deutsch 3" , code:"DFBI-311", sws:NaN, ects: 4}, {name:"Französisch 3", code:"DFBI-312", sws:3, ects: 4} ]; t.deepEqual(data, expected); });