Skip to content

Personal Library: tercer proyecto requisito obligatorio para obtener la Quality Assurance Certification de freecodecamp

Notifications You must be signed in to change notification settings

waldohidalgo/personal_library

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Personal Library

Tercer proyecto requisito obligatorio para obtener la Quality Assurance Certification de freecodecamp.

El proyecto consiste en realizar un registrador personal de libros ya sea la creación, edición, lectura y eliminación de libros así como la agregación de comentarios a cada libro para lo cual se dispone una API REST la que vía métodos HTTP como GET, POST, PUT y DELETE permite registrar los cambios en una collection creada en una base de datos MongoDB Atlas. Además se deben crear 10 tests funcionales que prueben el funcionamiento correcto de la App para diversos casos de prueba.

Tabla de Contenido

Requisitos

Imagen de Requisitos

Proyecto Aprobado

Imagen de Proyecto Aprobado

Test Funcionales Aprobados

Imagen de Test Funcionales Aprobados

Test Funcionales Creados

1. Test POST /api/books with title

chai
  .request(server)
  .keepOpen()
  .post("/api/books")
  .send({ title: "test" })
  .end(function (err, res) {
    assert.equal(res.status, 200);
    assert.equal(res.body.title, "test");
    done();
  });

2.Test POST /api/books with no title given

chai
  .request(server)
  .keepOpen()
  .post("/api/books")
  .end(function (err, res) {
    assert.equal(res.status, 200);
    assert.equal(res.text, "missing required field title");
    assert.isString(res.text);
    done();
  });

3.Test GET /api/books

chai
  .request(server)
  .keepOpen()
  .get("/api/books")
  .end(function (err, res) {
    assert.equal(res.status, 200);
    assert.isArray(res.body);
    done();
  });

4.Test GET /api/books/[id] with id not in db

chai
  .request(server)
  .keepOpen()
  .get("/api/books/1234")
  .end(function (err, res) {
    assert.equal(res.text, "no book exists");
    done();
  });

5.Test GET /api/books/[id] with valid id in db

chai
  .request(server)
  .keepOpen()
  .post("/api/books")
  .send({ title: "test" })
  .end(function (err, res) {
    assert.equal(res.status, 200);
    chai
      .request(server)
      .keepOpen()
      .get("/api/books/" + res.body._id)
      .end(function (err, res) {
        assert.equal(res.status, 200);
        assert.isObject(res.body);
        done();
      });
  });

6.Test POST /api/books/[id] with comment

chai
  .request(server)
  .keepOpen()
  .post("/api/books/")
  .send({ title: "test" })
  .end(function (err, res) {
    assert.equal(res.status, 200);

    chai
      .request(server)
      .keepOpen()
      .post("/api/books/" + res.body._id)
      .send({ comment: "test" })
      .end(function (err, res) {
        assert.equal(res.status, 200);
        assert.isObject(res.body);
        done();
      });
  });

7.Test POST /api/books/[id] without comment field

chai
  .request(server)
  .keepOpen()
  .post("/api/books/")
  .send({ title: "test" })
  .end(function (err, res) {
    assert.equal(res.status, 200);
    chai
      .request(server)
      .keepOpen()
      .post("/api/books/" + res.body._id)
      .end(function (err, res) {
        assert.equal(res.status, 200);
        assert.equal(res.text, "missing required field comment");
        done();
      });
  });

8.Test POST /api/books/[id] with comment, id not in db

chai
  .request(server)
  .keepOpen()
  .post("/api/books/")
  .send({ title: "test" })
  .end(function (err, res) {
    assert.equal(res.status, 200);
    chai
      .request(server)
      .keepOpen()
      .post("/api/books/1234")
      .send({ comment: "test" })
      .end(function (err, res) {
        assert.equal(res.status, 200);
        assert.equal(res.text, "no book exists");
        done();
      });
  });

9.Test DELETE /api/books/[id] with valid id in db

chai
  .request(server)
  .keepOpen()
  .post("/api/books/")
  .send({ title: "test" })
  .end(function (err, res) {
    assert.equal(res.status, 200);
    chai
      .request(server)
      .keepOpen()
      .delete("/api/books/" + res.body._id)
      .end(function (err, res) {
        assert.equal(res.status, 200);
        assert.equal(res.text, "delete successful");
        done();
      });
  });

10.Test DELETE /api/books/[id] with id not in db

chai
  .request(server)
  .keepOpen()
  .delete("/api/books/1234")
  .end(function (err, res) {
    assert.equal(res.status, 200);
    assert.equal(res.text, "no book exists");
    done();
  });

Screenshots

1. Home Page

Imagen de Home Page

About

Personal Library: tercer proyecto requisito obligatorio para obtener la Quality Assurance Certification de freecodecamp

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published