No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

16 Días
21 Hrs
15 Min
41 Seg

Pruebas con base de datos NoSQL con MongoDB

13/17
Recursos

Aportes 5

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

luego de este curso hare uno de DB, me perdi un poco 😢

Para Cypress 12 lo que hcie en mi caso fue lo siguiente:

Por defecto utilice la conexion que te da Mongo al momento de instalarlo y el URI en el archivo cypress.env.json lo puse asi:

"mongo": "mongodb://127.0.0.1:27017/"

|
Este lo pueden sacar desde la opción Copy connection string en MongoDB Compass
|
NOTA: Esta con 127.0.0.1 debido a que con localhost falla y según leí es debido a que con localhost Mongo utiliza una dirección IPv6 y al darle el valor de 127.0.0.1 utiliza la dirección de localhost pero de IPv4
|
La conexion la configure asi en el archivo cypress.config.js

const { defineConfig } = require("cypress");
const { MongoClient } = require("mongodb");
const mysql = require('mysql')

module.exports = defineConfig({
  e2e: {
    baseUrl: "https://localhost:3000/",
    setupNodeEvents(on, config) {
      // implement node event listeners here
      on('task',{
        queryTestDb:function(query) {
        const connection = mysql.createConnection(config.env.db)
        connection.connect()
        return new Promise((resolve, reject) => {
          connection.query(query,(err,results)=>{
            if(err){
              reject(err)
            } else {

              connection.end()
              return resolve(results)
            }
          })
        })
      },
      queryMongo: async function(object) {
        let client;
        try {
          client = new MongoClient(config.env.mongo);
          await client.connect();
          console.log("Connected to MongoDB");
  
          const db = client.db('cypress');
          const collection = db.collection("tests");
          const results = await collection.find(object).toArray();
          return results;
        } catch (e) {
          console.error("Error connecting to MongoDB", e);
          throw e;
        } finally {
          if (client) {
            await client.close();
            console.log("Disconnected from MongoDB");
          }
        }
      }
    })
    },
    excludeSpecPattern:[
      "**/1-getting-started/*.js",
      "**/2-advanced-examples/*.js"
    ]
  }
});

En mi caso me cree una base de datos llamada cypress y dentro una coleccion llamada tests, el objeto que cree solo para tener informacion que recuperar de dicha coleccion es {Name: ‘Mauricio’}
|
Y finalmente para el test puse lo siguiente:

describe("Testing mongo", function() {
    it('Listing mongo', function () {
      let object = { Name: "Mauricio" };
      cy.task("queryMongo", object).then((results) => {
        cy.log(results);
        expect(results).to.have.length(1);
        expect(results[0].Name).to.be.eq("Mauricio")
      });
    });
});

¡Rock n’ Roll! 🤟

Qué complicado…

En este link escuentran mi solucion: <https://github.com/celioso/Cursos-de-Platzi/tree/main/CursoDeAutomatizacionDePruebasDeBackendConCypress>