Solved and fixed tests
This commit is contained in:
parent
5a71a12c6b
commit
4d40dc0e02
64
cmds.js
64
cmds.js
@ -151,10 +151,40 @@ exports.editCmd = (rl, id) => {
|
||||
* @param id Clave del quiz a probar.
|
||||
*/
|
||||
exports.testCmd = (rl, id) => {
|
||||
log('Probar el quiz indicado.', 'red');
|
||||
rl.prompt();
|
||||
if (typeof id === "undefined") {
|
||||
errorlog(`Falta el parámetro id.`);
|
||||
rl.prompt();
|
||||
} else {
|
||||
try {
|
||||
const quiz = model.getByIndex(id);
|
||||
|
||||
rl.question(colorize(quiz.question + " ", 'red'), answer => {
|
||||
if ( quiz.answer == answer ) {
|
||||
biglog("correct", "green");
|
||||
} else {
|
||||
biglog("incorrect", "red");
|
||||
}
|
||||
rl.prompt();
|
||||
});
|
||||
} catch (error) {
|
||||
errorlog(error.message);
|
||||
rl.prompt();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Shuffles array in place. ES6 version
|
||||
* @param {Array} a items An array containing the items.
|
||||
*/
|
||||
function shuffle(a) {
|
||||
for (let i = a.length - 1; i > 0; i--) {
|
||||
const j = Math.floor(Math.random() * (i + 1));
|
||||
[a[i], a[j]] = [a[j], a[i]];
|
||||
}
|
||||
return a;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Pregunta todos los quizzes existentes en el modelo en orden aleatorio.
|
||||
@ -163,8 +193,34 @@ exports.testCmd = (rl, id) => {
|
||||
* @param rl Objeto readline usado para implementar el CLI.
|
||||
*/
|
||||
exports.playCmd = rl => {
|
||||
log('Jugar.', 'red');
|
||||
rl.prompt();
|
||||
let aciertos = 0;
|
||||
let questions = shuffle(model.getAll());
|
||||
|
||||
const keepAsking = () => {
|
||||
if (questions.length<1){
|
||||
log(`Fin del juego - Aciertos: ${aciertos}`, "red");
|
||||
rl.prompt();
|
||||
return
|
||||
}
|
||||
try {
|
||||
let quiz = questions.pop();
|
||||
|
||||
rl.question(colorize(quiz.question + " ", 'red'), answer => {
|
||||
if ( quiz.answer == answer ) {
|
||||
aciertos += 1;
|
||||
log(`CORRECTO - lleva ${aciertos} aciertos`, "green");
|
||||
} else {
|
||||
log("INCORRECTO", "red");
|
||||
questions = [];
|
||||
}
|
||||
keepAsking()
|
||||
});
|
||||
} catch (error) {
|
||||
errorlog(error.message);
|
||||
rl.prompt();
|
||||
}
|
||||
}
|
||||
keepAsking();
|
||||
};
|
||||
|
||||
|
||||
|
@ -96,7 +96,7 @@ describe("mooc_node-mod5_quiz_cmd", function () {
|
||||
|
||||
// replace answers file
|
||||
[_, path_ok] = await to(fs.move(path.join(path_assignment, 'quizzes.json'), path.join(path_assignment, 'quizzes.original.json'), {"overwrite": true}));
|
||||
[error_deps, path_ok] = await to(fs.move(path.join(path_assignment, 'tests', 'quizzes.json'), path.join(path_assignment, 'quizzes.json'), {"overwrite": true}));
|
||||
[error_deps, path_ok] = await to(fs.copy(path.join(path_assignment, 'tests', 'quizzes.json'), path.join(path_assignment, 'quizzes.json'), {"overwrite": true}));
|
||||
if (error_deps) {
|
||||
this.msg_err = "Error copying the answers file: " + error_deps;
|
||||
error_critical = this.msg_err;
|
||||
@ -301,7 +301,7 @@ describe("mooc_node-mod5_quiz_cmd", function () {
|
||||
should.not.exist(error_critical);
|
||||
} else {
|
||||
const input = ["play", "OK"];
|
||||
const expected = "/1/";
|
||||
const expected = /1/;
|
||||
let output = "";
|
||||
let error_std = "";
|
||||
const client = spawn("node", ["main.js"], {cwd: path_assignment});
|
||||
@ -327,6 +327,7 @@ describe("mooc_node-mod5_quiz_cmd", function () {
|
||||
}
|
||||
this.msg_ok = `Found '${expected}' in ${path_assignment}`;
|
||||
this.msg_err = `Couldn't find '${expected}' in ${path_assignment}\nError:${error_std}\nReceived:${output}`;
|
||||
console.log(expected, "OUT", output);
|
||||
error_std.should.be.equal("");
|
||||
Utils.search(expected, output).should.be.equal(true);
|
||||
}
|
||||
@ -411,4 +412,4 @@ describe("mooc_node-mod5_quiz_cmd", function () {
|
||||
after("Restoring the original file", async function () {
|
||||
[error_copy, path_ok] = await to(fs.move(path.join(path_assignment, 'quizzes.original.json'), path.join(path_assignment, 'quizzes.json'), {"overwrite": true}));
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@ -1 +1 @@
|
||||
[{"question": "Answer Number 1","answer": "OK"},{"question": "Answer Number 2","answer": "OK"}]
|
||||
[{"question":"Answer Number 1","answer":"OK"},{"question":"Answer Number 2","answer":"OK"}]
|
Reference in New Issue
Block a user