Greeter.ts 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
  2. import type { SignerWithAddress } from "@nomiclabs/hardhat-ethers/dist/src/signer-with-address";
  3. import { ethers } from "hardhat";
  4. import type { Greeter } from "../../src/types/Greeter";
  5. import type { Greeter__factory } from "../../src/types/factories/Greeter__factory";
  6. import type { Signers } from "../types";
  7. import { shouldBehaveLikeGreeter } from "./Greeter.behavior";
  8. describe("Unit tests", function () {
  9. async function deployGreeterFixture(): Promise<{ greeter: Greeter }> {
  10. const signers: SignerWithAddress[] = await ethers.getSigners();
  11. const admin: SignerWithAddress = signers[0];
  12. const greeting: string = "Hello, world!";
  13. const greeterFactory: Greeter__factory = <Greeter__factory>await ethers.getContractFactory("Greeter");
  14. const greeter: Greeter = <Greeter>await greeterFactory.connect(admin).deploy(greeting);
  15. await greeter.deployed();
  16. return { greeter };
  17. }
  18. before(async function () {
  19. this.signers = {} as Signers;
  20. const signers: SignerWithAddress[] = await ethers.getSigners();
  21. this.signers.admin = signers[0];
  22. this.loadFixture = loadFixture;
  23. });
  24. describe("Greeter", function () {
  25. beforeEach(async function () {
  26. const { greeter } = await this.loadFixture(deployGreeterFixture);
  27. this.greeter = greeter;
  28. });
  29. shouldBehaveLikeGreeter();
  30. });
  31. });