Files
DLE/backend/test/AccessToken.test.js

42 lines
1.3 KiB
JavaScript

const { expect } = require('chai');
const { ethers } = require('hardhat');
describe('AccessToken', function () {
let AccessToken;
let accessToken;
let owner;
let addr1;
let addr2;
beforeEach(async function () {
[owner, addr1, addr2] = await ethers.getSigners();
AccessToken = await ethers.getContractFactory('AccessToken');
accessToken = await AccessToken.deploy();
});
describe('Minting', function () {
it('Should mint admin token', async function () {
await accessToken.mintAccessToken(addr1.address, 0);
expect(await accessToken.checkRole(addr1.address)).to.equal(0);
});
it('Should mint moderator token', async function () {
await accessToken.mintAccessToken(addr1.address, 1);
expect(await accessToken.checkRole(addr1.address)).to.equal(1);
});
});
describe('Access Control', function () {
it('Should fail for non-token holders', async function () {
await expect(accessToken.checkRole(addr1.address)).to.be.revertedWith('No active token');
});
it('Should revoke access', async function () {
await accessToken.mintAccessToken(addr1.address, 0);
const tokenId = await accessToken.activeTokens(addr1.address);
await accessToken.revokeToken(tokenId);
await expect(accessToken.checkRole(addr1.address)).to.be.revertedWith('No active token');
});
});
});