mirror of
https://github.com/selfxyz/self.git
synced 2026-01-10 07:08:10 -05:00
* Add Prettier configuration and ignore files for code formatting - Created .prettierignore to exclude specific directories and files from formatting. - Added .prettierrc.yml with custom settings for print width and trailing commas. - Updated package.json to include Prettier and its Solidity plugin as dependencies, along with scripts for formatting and checking code. * Run prettier formatting
95 lines
3.5 KiB
TypeScript
95 lines
3.5 KiB
TypeScript
import { expect } from "chai";
|
|
import { ethers } from "hardhat";
|
|
import { PCR0Manager } from "../typechain-types";
|
|
import { SignerWithAddress } from "@nomicfoundation/hardhat-ethers/signers";
|
|
|
|
describe("PCR0Manager", function () {
|
|
let pcr0Manager: PCR0Manager;
|
|
let owner: SignerWithAddress;
|
|
let other: SignerWithAddress;
|
|
|
|
// Sample PCR0 value for testing (48 bytes)
|
|
const samplePCR0 = "0x" + "00".repeat(48);
|
|
const invalidPCR0 = "0x" + "00".repeat(32); // 32 bytes (invalid size)
|
|
|
|
beforeEach(async function () {
|
|
[owner, other] = await ethers.getSigners();
|
|
|
|
const PCR0Manager = await ethers.getContractFactory("PCR0Manager");
|
|
pcr0Manager = await PCR0Manager.deploy();
|
|
});
|
|
|
|
describe("addPCR0", function () {
|
|
it("should allow owner to add PCR0 value", async function () {
|
|
await expect(pcr0Manager.addPCR0(samplePCR0)).to.emit(pcr0Manager, "PCR0Added");
|
|
|
|
expect(await pcr0Manager.isPCR0Set(samplePCR0)).to.be.true;
|
|
});
|
|
|
|
it("should allow owner to add PCR0 value", async function () {
|
|
await expect(pcr0Manager.addPCR0(samplePCR0)).to.emit(pcr0Manager, "PCR0Added");
|
|
|
|
expect(await pcr0Manager.isPCR0Set(samplePCR0)).to.be.true;
|
|
});
|
|
|
|
it("should not allow non-owner to add PCR0 value", async function () {
|
|
await expect(pcr0Manager.connect(other).addPCR0(samplePCR0))
|
|
.to.be.revertedWithCustomError(pcr0Manager, "OwnableUnauthorizedAccount")
|
|
.withArgs(other.address);
|
|
});
|
|
|
|
it("should not allow adding PCR0 with invalid size", async function () {
|
|
await expect(pcr0Manager.addPCR0(invalidPCR0)).to.be.revertedWith("PCR0 must be 48 bytes");
|
|
});
|
|
|
|
it("should not allow adding duplicate PCR0", async function () {
|
|
await pcr0Manager.addPCR0(samplePCR0);
|
|
await expect(pcr0Manager.addPCR0(samplePCR0)).to.be.revertedWith("PCR0 already set");
|
|
});
|
|
});
|
|
|
|
describe("removePCR0", function () {
|
|
beforeEach(async function () {
|
|
await pcr0Manager.addPCR0(samplePCR0);
|
|
});
|
|
|
|
it("should allow owner to remove PCR0 value", async function () {
|
|
await expect(pcr0Manager.removePCR0(samplePCR0)).to.emit(pcr0Manager, "PCR0Removed");
|
|
|
|
expect(await pcr0Manager.isPCR0Set(samplePCR0)).to.be.false;
|
|
});
|
|
|
|
// This is not actually needed, just for increase the coverage of the test code
|
|
it("should not allow remove PCR0 with invalid size", async function () {
|
|
await expect(pcr0Manager.removePCR0(invalidPCR0)).to.be.revertedWith("PCR0 must be 48 bytes");
|
|
});
|
|
|
|
it("should not allow non-owner to remove PCR0 value", async function () {
|
|
await expect(pcr0Manager.connect(other).removePCR0(samplePCR0))
|
|
.to.be.revertedWithCustomError(pcr0Manager, "OwnableUnauthorizedAccount")
|
|
.withArgs(other.address);
|
|
});
|
|
|
|
it("should not allow removing non-existent PCR0", async function () {
|
|
const otherPCR0 = "0x" + "11".repeat(48);
|
|
await expect(pcr0Manager.removePCR0(otherPCR0)).to.be.revertedWith("PCR0 not set");
|
|
});
|
|
});
|
|
|
|
describe("isPCR0Set", function () {
|
|
it("should correctly return PCR0 status", async function () {
|
|
expect(await pcr0Manager.isPCR0Set(samplePCR0)).to.be.false;
|
|
|
|
await pcr0Manager.addPCR0(samplePCR0);
|
|
expect(await pcr0Manager.isPCR0Set(samplePCR0)).to.be.true;
|
|
|
|
await pcr0Manager.removePCR0(samplePCR0);
|
|
expect(await pcr0Manager.isPCR0Set(samplePCR0)).to.be.false;
|
|
});
|
|
|
|
it("should not allow checking PCR0 with invalid size", async function () {
|
|
await expect(pcr0Manager.isPCR0Set(invalidPCR0)).to.be.revertedWith("PCR0 must be 48 bytes");
|
|
});
|
|
});
|
|
});
|