No tienes acceso a esta clase

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

Creando pruebas unitarias

7/19
Recursos

Aportes 3

Preguntas 0

Ordenar por:

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

si estan realizando este curso despues del octuber 2 puede que les genere un error al intentar realizar el test, el error que tenia yo era "TypeError: platziFood.deployed is not a function" y era por que la nuevas versiones de hardhat no necesitan la funcion deployed(); yo simplemente al borrar esa linea el codigo me funciono como en la clase
const { ethers } = require("hardhat");
const { expect } = require("chai");

describe("PlatziFood", () => {
  const setup = async () => {
    const accounts = await ethers.getSigners();
    const PlatziFood = await ethers.getContractFactory("PlatziFood");
    const deployed = await PlatziFood.deploy();
    return {
      accounts,
      deployed,
    };
  };

  describe("PlatziFood Contract", () => {
    it("getAllPlatziFoods return an empty PlatziFoodItem[]", async () => {
      const { deployed } = await setup();
      expect(await deployed.getAllPlatziFoods()).to.eql([]);
    });

    it("addPlatziPunk added correctly and array in platziFoods", async () => {
      const { deployed, accounts } = await setup();
      const signer = accounts[0].address;
      const foodUrl = "test";
      const foodName = "Pollito";
      const originCountry = "CO";
      await deployed.addPlatziFood(foodUrl, foodName, originCountry);
      expect(await deployed.getAllPlatziFoods()).to.eql([
        [signer, foodUrl, foodName, originCountry],
      ]);
    });

    describe("getPlatziFoodByOwner", async () => {
      it("should return all platzi food by owner", async () => {
        const { deployed } = await setup();
        const foodUrl = "test";
        const foodName = "Pollito";
        const originCountry = "CO";
        await deployed.addPlatziFood(foodUrl, foodName, originCountry);
        // ==============================
        const foodUrl2 = "test";
        const foodName2 = "Carnita";
        const originCountry2 = "VE";
        await deployed.addPlatziFood(foodUrl2, foodName2, originCountry2);
        // ==============================
        const getAllFoodsByMainSigner = await deployed.getPlatziFoodsByOwner();
        expect(getAllFoodsByMainSigner.length).to.equal(2);
      });
      it("should return all platzi food by another address", async () => {
        const { accounts, deployed } = await setup();
        const signer = accounts[1];
        const foodUrl = "test";
        const foodName = "Carnita";
        const originCountry = "VE";
        await deployed
          .connect(signer)
          .addPlatziFood(foodUrl, foodName, originCountry);
        expect(
          await deployed.connect(signer).getPlatziFoodsByOwner()
        ).to.have.lengthOf(1);
      });
    });
  });
});

Las pruebas son muy importantes ya que ayudan a detectar errores y así evitar re trabajos que consumen tiempo y a diferencia de web2 también conllevan costos económicos altos.