```
const IncentiveV1 = artifacts.require("IncentiveV1");
contract("IncentiveV1", () => {
let contract;
beforeEach(async () => {
contract = await IncentiveV1.new();
});
it("should create a seller account correctly", async () => {
const profileImage = "https://example.com/image.jpg";
const seller = "0x1234567890123456789012345678901234567890";
await contract.createSellerAccount(profileImage, { from: seller });
const sellerAccount = await contract.sellers(seller);
assert.equal(sellerAccount.profileImage, profileImage, "Profile image was not set correctly");
assert.equal(sellerAccount.seller, seller, "Seller address was not set correctly");
});
it("should create a buyer account correctly", async () => {
const profileImage = "https://example.com/image.jpg";
const buyer = "0x1234567890123456789012345678901234567890";
await contract.createBuyerAccount(profileImage, { from: buyer });
const buyerAccount = await contract.buyers(buyer);
assert.equal(buyerAccount.profileImage, profileImage, "Profile image was not set correctly");
assert.equal(buyerAccount.buyer, buyer, "Buyer address was not set correctly");
});
it("should create a special incentive correctly", async () => {
const incentiveURI = "https://example.com/incentive.jpg";
const price = 100;
const discount = 20;
const creator = "0x1234567890123456789012345678901234567890";
await contract.createSpecialIncentive(incentiveURI, price, discount, { from: creator });
const specialIncentive = await contract.specialIncentives(1);
assert.equal(specialIncentive.incentiveURI, incentiveURI, "Incentive URI was not set correctly");
assert.equal(specialIncentive.price, price, "Price was not set correctly");
assert.equal(specialIncentive.discount, discount, "Discount was not set correctly");
assert.equal(specialIncentive.creator, creator, "Creator address was not set correctly");
});
it("should create an incentive correctly", async () => {
const incentiveURI = "https://example.com/incentive.jpg";
const price = 100;
const creator = "0x1234567890123456789012345678901234567890";
await contract.createIncentive(incentiveURI, price, { from: creator });
const incentive = await contract.incentives(1);
assert.equal(incentive.incentiveURI, incentiveURI, "Incentive URI was not set correctly");
assert.equal(incentive.price, price, "Price was not set correctly");
assert.equal(incentive.creator, creator, "Creator address was not set correctly");
});
```