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 = `<table>
|
<tr><th class="name">Vorlesung</th><th class="effort">Aufwand pro Woche in Stunden</th></tr>
|
<tr><td class="name">A</td> <td class="effort">1</td></tr>
|
<tr><td class="name">B</td> <td class="effort">2</td></tr>
|
</table>`;
|
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);
|
});
|