Skip to content

Commit 265d973

Browse files
committed
update tests
Signed-off-by: John Titor <[email protected]>
1 parent 5e4cf99 commit 265d973

File tree

6 files changed

+42
-25
lines changed

6 files changed

+42
-25
lines changed

test/edge-cases/EdgeCases.test.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -292,8 +292,10 @@ describe("Edge Cases Tests", function () {
292292
);
293293

294294
// Close the election
295-
const closeHash = await electionDatabase.write.adminCloseElection([0n]);
296-
await publicClient.waitForTransactionReceipt({ hash: closeHash });
295+
const completeHash = await electionDatabase.write.adminCompleteElection([
296+
0n,
297+
]);
298+
await publicClient.waitForTransactionReceipt({ hash: completeHash });
297299
});
298300
});
299301

test/integration/DatabaseIntegration.test.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { assert, expect } from "chai";
33
import hre from "hardhat";
44
import { getAddress } from "viem";
55
import { hardhat } from "viem/chains";
6-
import { GenderEnum } from "../../types";
6+
import { ElectionStatusEnum, GenderEnum } from "../../types";
77
import { getDobEpochFromAge } from "../../lib/utils";
88

99
describe("Database Integration Tests", function () {
@@ -290,13 +290,15 @@ describe("Database Integration Tests", function () {
290290
assert.equal(voterStatus, true);
291291

292292
// 7. Close the election
293-
const closeHash = await electionDatabase.write.adminCloseElection([0n]);
293+
const closeHash = await electionDatabase.write.adminCompleteElection([
294+
0n,
295+
]);
294296
await publicClient.waitForTransactionReceipt({ hash: closeHash });
295297

296298
const isActiveAfterClose = await electionDatabase.read.getElectionStatus([
297299
0n,
298300
]);
299-
assert.equal(isActiveAfterClose, false);
301+
assert.equal(isActiveAfterClose, ElectionStatusEnum.COMPLETED);
300302

301303
// 8. Get the winner
302304
const winner = await electionDatabase.read.getWinner([0n]);

test/performance/GasUsage.test.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { assert, expect } from "chai";
33
import hre from "hardhat";
44
import { getAddress } from "viem";
55
import { hardhat } from "viem/chains";
6-
import { GenderEnum } from "../../types";
6+
import { ElectionStatusEnum, GenderEnum } from "../../types";
77
import { getDobEpochFromAge } from "../../lib/utils";
88

99
describe("Gas Usage Tests", function () {
@@ -181,15 +181,19 @@ describe("Gas Usage Tests", function () {
181181
console.log(`Gas used for voting: ${receipt.gasUsed}`);
182182

183183
// Measure election closing
184-
tx = await electionDatabase.write.adminCloseElection([0n]);
184+
tx = await electionDatabase.write.adminCompleteElection([0n]);
185185
receipt = await publicClient.waitForTransactionReceipt({ hash: tx });
186186
console.log(`Gas used for closing election: ${receipt.gasUsed}`);
187187

188188
// Confirm final state
189189
const electionStatus = await electionDatabase.read.getElectionStatus([
190190
0n,
191191
]);
192-
assert.equal(electionStatus, false, "Election should be closed");
192+
assert.equal(
193+
electionStatus,
194+
ElectionStatusEnum.COMPLETED,
195+
"Election should be closed"
196+
);
193197

194198
const voteCount = await electionDatabase.read.getVotesOfCandidate([
195199
0n,

test/security/SecurityTests.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -446,7 +446,7 @@ describe("Security Tests", function () {
446446
electionDatabase.write.vote([0n, candidate1.account.address], {
447447
account: voter1.account,
448448
})
449-
).to.be.rejectedWith("ElectionDatabase__ElectionClosed");
449+
).to.be.rejectedWith("ElectionDatabase__ElectionNotActive");
450450

451451
// Open the election
452452
await electionDatabase.write.adminOpenElection([0n]);
@@ -461,14 +461,14 @@ describe("Security Tests", function () {
461461
await publicClient.waitForTransactionReceipt({ hash: voteHash });
462462

463463
// Close the election
464-
await electionDatabase.write.adminCloseElection([0n]);
464+
await electionDatabase.write.adminCompleteElection([0n]);
465465

466466
// Try to vote after election is closed
467467
await expect(
468468
electionDatabase.write.vote([0n, candidate1.account.address], {
469469
account: voter1.account, // Using another voter account
470470
})
471-
).to.be.rejectedWith("ElectionDatabase__ElectionClosed");
471+
).to.be.rejectedWith("ElectionDatabase__ElectionNotActive");
472472
});
473473

474474
it("should prevent unregistered voters from voting", async function () {

test/unit/ElectionDatabase.test.ts

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { assert, expect } from "chai";
33
import hre from "hardhat";
44
import { getAddress } from "viem";
55
import { hardhat } from "viem/chains";
6-
import { GenderEnum } from "../../types";
6+
import { GenderEnum, ElectionStatusEnum } from "../../types";
77
import { getDobEpochFromAge } from "../../lib/utils";
88

99
describe("ElectionDatabase Unit Tests", function () {
@@ -445,7 +445,7 @@ describe("ElectionDatabase Unit Tests", function () {
445445
electionDatabase.write.enrollCandidate([0n], {
446446
account: candidate1.account,
447447
})
448-
).to.be.rejectedWith("ElectionDatabase__ElectionActive");
448+
).to.be.rejectedWith("ElectionDatabase__ElectionNotNew");
449449
});
450450

451451
it("should revert if candidate not registered in CandidateDatabase", async function () {
@@ -553,7 +553,7 @@ describe("ElectionDatabase Unit Tests", function () {
553553
electionDatabase.write.withdrawCandidate([0n], {
554554
account: candidate1.account,
555555
})
556-
).to.be.rejectedWith("ElectionDatabase__ElectionActive");
556+
).to.be.rejectedWith("ElectionDatabase__ElectionNotNew");
557557
});
558558

559559
it("should revert if candidate not enrolled", async function () {
@@ -768,13 +768,13 @@ describe("ElectionDatabase Unit Tests", function () {
768768
);
769769

770770
// Verify election status
771-
const isActive = await electionDatabase.read.getElectionStatus([0n]);
772-
assert.equal(isActive, true);
771+
const status = await electionDatabase.read.getElectionStatus([0n]);
772+
assert.equal(status, ElectionStatusEnum.ACTIVE);
773773
});
774774
});
775775

776-
describe("adminCloseElection", function () {
777-
it("should emit ElectionClosed on success", async function () {
776+
describe("adminCompleteElection", function () {
777+
it("should emit ElectionCompleted on success", async function () {
778778
const { electionDatabase, candidate1, owner, publicClient } =
779779
await loadFixture(deployElectionDatabaseFixture);
780780

@@ -794,11 +794,11 @@ describe("ElectionDatabase Unit Tests", function () {
794794
const hash3 = await electionDatabase.write.adminOpenElection([0n]);
795795
await publicClient.waitForTransactionReceipt({ hash: hash3 });
796796

797-
// Close election
798-
const hash4 = await electionDatabase.write.adminCloseElection([0n]);
797+
// Complete election
798+
const hash4 = await electionDatabase.write.adminCompleteElection([0n]);
799799
await publicClient.waitForTransactionReceipt({ hash: hash4 });
800800

801-
const events = await electionDatabase.getEvents.ElectionClosed();
801+
const events = await electionDatabase.getEvents.ElectionCompleted();
802802
expect(events).to.have.lengthOf(1);
803803
assert.equal(events[0].args.electionId, 0n);
804804
assert.equal(
@@ -807,8 +807,8 @@ describe("ElectionDatabase Unit Tests", function () {
807807
);
808808

809809
// Verify election status
810-
const isActive = await electionDatabase.read.getElectionStatus([0n]);
811-
assert.equal(isActive, false);
810+
const status = await electionDatabase.read.getElectionStatus([0n]);
811+
assert.equal(status, ElectionStatusEnum.COMPLETED);
812812
});
813813
});
814814
});
@@ -867,7 +867,7 @@ describe("ElectionDatabase Unit Tests", function () {
867867
electionDatabase.write.vote([0n, candidate1.account.address], {
868868
account: voter1.account,
869869
})
870-
).to.be.rejectedWith("ElectionDatabase__ElectionClosed");
870+
).to.be.rejectedWith("ElectionDatabase__ElectionNotActive");
871871
});
872872

873873
it("should revert if candidate not enrolled in election", async function () {
@@ -1041,7 +1041,7 @@ describe("ElectionDatabase Unit Tests", function () {
10411041
const details = await electionDatabase.read.getElectionDetails([0n]);
10421042
assert.equal(details[0], "Presidential Election 2023");
10431043
assert.equal(details[1], "National presidential election");
1044-
assert.equal(details[2], false); // isActive
1044+
assert.equal(details[2], ElectionStatusEnum.NEW); // status
10451045
assert.equal(details[3].length, 1); // candidates array
10461046
assert.equal(
10471047
getAddress(details[3][0]),

types/index.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,12 @@ export const GenderEnum = {
33
FEMALE: 1,
44
} as const;
55
export type Gender = (typeof GenderEnum)[keyof typeof GenderEnum];
6+
7+
export const ElectionStatusEnum = {
8+
NEW: 0,
9+
ACTIVE: 1,
10+
COMPLETED: 2,
11+
ARCHIVED: 3,
12+
} as const;
13+
export type ElectionStatus =
14+
(typeof ElectionStatusEnum)[keyof typeof ElectionStatusEnum];

0 commit comments

Comments
 (0)