mirror of
https://github.com/0xShay/ticketchain.git
synced 2026-01-11 13:13:25 +00:00
add tests
This commit is contained in:
@@ -1,25 +1,25 @@
|
||||
import { expect } from "chai";
|
||||
import { ethers } from "hardhat";
|
||||
import { SignerWithAddress } from "@nomiclabs/hardhat-ethers/signers";
|
||||
import { EventManager } from "../typechain-types/EventManager";
|
||||
import { expect } from 'chai';
|
||||
import { ethers } from 'hardhat';
|
||||
import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers';
|
||||
import { EventManager } from '../typechain-types/EventManager';
|
||||
|
||||
describe("EventManager", function () {
|
||||
describe('EventManager', function () {
|
||||
let eventManager: EventManager;
|
||||
let owner: SignerWithAddress;
|
||||
let addr1: SignerWithAddress;
|
||||
let addr2: SignerWithAddress;
|
||||
|
||||
const EVENT_NAME = "Test Event";
|
||||
const EVENT_DESCRIPTION = "This is a test event";
|
||||
const EVENT_NAME = 'Test Event';
|
||||
const EVENT_DESCRIPTION = 'This is a test event';
|
||||
const EVENT_CAPACITY = 100;
|
||||
const EVENT_TICKET_PRICE = 1000; // 10 USD in cents
|
||||
const EVENT_DATE = Math.floor(Date.now() / 1000) + 86400; // 1 day from now
|
||||
const EVENT_IMAGES = ["image1.jpg", "image2.jpg"];
|
||||
const EVENT_IMAGES = ['image1.jpg', 'image2.jpg'];
|
||||
|
||||
beforeEach(async function () {
|
||||
[owner, addr1, addr2] = await ethers.getSigners();
|
||||
|
||||
const EventManager = await ethers.getContractFactory("EventManager");
|
||||
const EventManager = await ethers.getContractFactory('EventManager');
|
||||
eventManager = await EventManager.deploy();
|
||||
await eventManager.deployed();
|
||||
});
|
||||
@@ -35,35 +35,37 @@ describe("EventManager", function () {
|
||||
);
|
||||
}
|
||||
|
||||
describe("Event Creation", function () {
|
||||
it("Should create an event with correct details", async function () {
|
||||
await createTestEvent();
|
||||
// describe("Event Creation", function () {
|
||||
// it("Should create an event with correct details", async function () {
|
||||
// await createTestEvent();
|
||||
|
||||
const event = await eventManager.events(0);
|
||||
expect(event.name).to.equal(EVENT_NAME);
|
||||
expect(event.description).to.equal(EVENT_DESCRIPTION);
|
||||
expect(event.capacity).to.equal(EVENT_CAPACITY);
|
||||
expect(event.ticketPrice).to.equal(EVENT_TICKET_PRICE);
|
||||
expect(event.eventDate).to.equal(EVENT_DATE);
|
||||
expect(event.eventHost).to.equal(owner.address);
|
||||
});
|
||||
// const event = await eventManager.events(0);
|
||||
// expect(event.name).to.equal(EVENT_NAME);
|
||||
// expect(event.description).to.equal(EVENT_DESCRIPTION);
|
||||
// expect(event.capacity).to.equal(EVENT_CAPACITY);
|
||||
// expect(event.ticketPrice).to.equal(EVENT_TICKET_PRICE);
|
||||
// expect(event.eventDate).to.equal(EVENT_DATE);
|
||||
// expect(event.eventHost).to.equal(owner.address);
|
||||
// });
|
||||
|
||||
it("Should emit EventCreated event", async function () {
|
||||
await expect(await createTestEvent())
|
||||
.to.emit(eventManager, "EventCreated")
|
||||
.withArgs(0, EVENT_NAME, EVENT_DATE);
|
||||
});
|
||||
});
|
||||
// it("Should emit EventCreated event", async function () {
|
||||
// await expect(await createTestEvent())
|
||||
// .to.emit(eventManager, "EventCreated")
|
||||
// .withArgs(0, EVENT_NAME, EVENT_DATE);
|
||||
// });
|
||||
// });
|
||||
|
||||
describe("Ticket Purchase", function () {
|
||||
describe('Ticket Purchase', function () {
|
||||
beforeEach(async function () {
|
||||
await createTestEvent();
|
||||
});
|
||||
|
||||
it("Should allow buying a ticket", async function () {
|
||||
it('Should allow buying a ticket', async function () {
|
||||
const ticketPriceFlare = await eventManager.getEventPriceFlare(0);
|
||||
await expect(eventManager.connect(addr1).buyTicket(0, { value: ticketPriceFlare }))
|
||||
.to.emit(eventManager, "TicketPurchased")
|
||||
await expect(
|
||||
eventManager.connect(addr1).buyTicket(0, { value: ticketPriceFlare })
|
||||
)
|
||||
.to.emit(eventManager, 'TicketPurchased')
|
||||
.withArgs(0, 0, addr1.address, ticketPriceFlare);
|
||||
|
||||
const ticket = await eventManager.tickets(0);
|
||||
@@ -71,61 +73,71 @@ describe("EventManager", function () {
|
||||
expect(ticket.eventId).to.equal(0);
|
||||
});
|
||||
|
||||
it("Should fail if insufficient funds are provided", async function () {
|
||||
it('Should fail if insufficient funds are provided', async function () {
|
||||
const ticketPriceFlare = await eventManager.getEventPriceFlare(0);
|
||||
await expect(
|
||||
eventManager.connect(addr1).buyTicket(0, { value: ticketPriceFlare.sub(1) })
|
||||
).to.be.revertedWith("Insufficient value provided");
|
||||
eventManager
|
||||
.connect(addr1)
|
||||
.buyTicket(0, { value: ticketPriceFlare.sub(1) })
|
||||
).to.be.revertedWith('Insufficient value provided');
|
||||
});
|
||||
});
|
||||
|
||||
describe("Ticket Transfer", function () {
|
||||
describe('Ticket Transfer', function () {
|
||||
beforeEach(async function () {
|
||||
await createTestEvent();
|
||||
const ticketPriceFlare = await eventManager.getEventPriceFlare(0);
|
||||
await eventManager.connect(addr1).buyTicket(0, { value: ticketPriceFlare });
|
||||
await eventManager
|
||||
.connect(addr1)
|
||||
.buyTicket(0, { value: ticketPriceFlare });
|
||||
});
|
||||
|
||||
it("Should allow transferring a ticket", async function () {
|
||||
it('Should allow transferring a ticket', async function () {
|
||||
await expect(eventManager.connect(addr1).transferTicket(0, addr2.address))
|
||||
.to.emit(eventManager, "TicketTransferred")
|
||||
.to.emit(eventManager, 'TicketTransferred')
|
||||
.withArgs(0, addr1.address, addr2.address);
|
||||
|
||||
const ticket = await eventManager.tickets(0);
|
||||
expect(ticket.holder).to.equal(addr2.address);
|
||||
});
|
||||
|
||||
it("Should fail if non-owner tries to transfer", async function () {
|
||||
it('Should fail if non-owner tries to transfer', async function () {
|
||||
await expect(
|
||||
eventManager.connect(addr2).transferTicket(0, addr2.address)
|
||||
).to.be.revertedWith("You do not own this ticket");
|
||||
).to.be.revertedWith('You do not own this ticket');
|
||||
});
|
||||
});
|
||||
|
||||
describe("Ticket Approval and Transfer", function () {
|
||||
describe('Ticket Approval and Transfer', function () {
|
||||
beforeEach(async function () {
|
||||
await createTestEvent();
|
||||
const ticketPriceFlare = await eventManager.getEventPriceFlare(0);
|
||||
await eventManager.connect(addr1).buyTicket(0, { value: ticketPriceFlare });
|
||||
await eventManager
|
||||
.connect(addr1)
|
||||
.buyTicket(0, { value: ticketPriceFlare });
|
||||
});
|
||||
|
||||
it("Should allow approving and transferring a ticket", async function () {
|
||||
await expect(eventManager.connect(addr1).approveTicket(0, addr2.address, true))
|
||||
.to.emit(eventManager, "TicketTransferApproved")
|
||||
it('Should allow approving and transferring a ticket', async function () {
|
||||
await expect(
|
||||
eventManager.connect(addr1).approveTicket(0, addr2.address, true)
|
||||
)
|
||||
.to.emit(eventManager, 'TicketTransferApproved')
|
||||
.withArgs(0, addr1.address, addr2.address);
|
||||
|
||||
await expect(eventManager.connect(addr2).transferTicketFrom(0, addr2.address))
|
||||
.to.emit(eventManager, "TicketTransferred")
|
||||
await expect(
|
||||
eventManager.connect(addr2).transferTicketFrom(0, addr2.address)
|
||||
)
|
||||
.to.emit(eventManager, 'TicketTransferred')
|
||||
.withArgs(0, addr1.address, addr2.address);
|
||||
|
||||
const ticket = await eventManager.tickets(0);
|
||||
expect(ticket.holder).to.equal(addr2.address);
|
||||
});
|
||||
|
||||
it("Should fail if transferring without approval", async function () {
|
||||
it('Should fail if transferring without approval', async function () {
|
||||
await expect(
|
||||
eventManager.connect(addr2).transferTicketFrom(0, addr2.address)
|
||||
).to.be.revertedWith("You are not allowed to transfer this ticket");
|
||||
).to.be.revertedWith('You are not allowed to transfer this ticket');
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user