From 663eea2ac87b429537ec0bd2a1af52d2282b0c6a Mon Sep 17 00:00:00 2001 From: CounterFire2023 <136581895+CounterFire2023@users.noreply.github.com> Date: Mon, 26 Feb 2024 17:32:55 +0800 Subject: [PATCH] add test for activity already end and not start --- test/nftclaimer.test.js | 58 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) diff --git a/test/nftclaimer.test.js b/test/nftclaimer.test.js index 6ccf7f5..01b2375 100644 --- a/test/nftclaimer.test.js +++ b/test/nftclaimer.test.js @@ -14,13 +14,17 @@ contract("NFTClaimer", (accounts) => { const owner = accounts[0]; const user = accounts[1]; const singer = accounts[2]; - + const now = Date.now() / 1000 | 0; + const start = now - 3600; + const end = now + 3600; beforeEach(async () => { nft = await NFT.new("NFT", "NFT", 5); tokenClaimer = await NFTClaimer.new(); await tokenClaimer.updateTokenSupport(nft.address, true); await tokenClaimer.updateSigner(singer); + await tokenClaimer.updateStartTime(start); + await tokenClaimer.updateEndTime(end); }); it("should cliam token", async () => { @@ -122,4 +126,56 @@ contract("NFTClaimer", (accounts) => { err ); }); + it("should revert cliam token for activity not begin", async () => { + const minterRole = await nft.MINTER_ROLE(); + await tokenClaimer.updateStartTime(Date.now() / 1000 | 0 + 3600); + await nft.grantRole(minterRole, tokenClaimer.address); + const token = nft.address; + const chainId = await web3.eth.getChainId(); + const address = tokenClaimer.address; + const startTime = Date.now() / 1000 | 0; + const saltNonce = (Math.random() * 1000) | 0; + let signStr = web3.utils.soliditySha3.apply(this, + [user, token, startTime, chainId, address, saltNonce]); + let signature = await web3.eth.sign(signStr, singer); + signature = signature.replace(/00$/, "1b").replace(/01$/, "1c"); + + const err = `NFTClaimer: not started` + await expectRevert( + tokenClaimer.claim( + token, + startTime, + saltNonce, + signature, + { from: user } + ), + err + ); + }); + it("should revert cliam token for activity already end", async () => { + const minterRole = await nft.MINTER_ROLE(); + await tokenClaimer.updateEndTime((Date.now() / 1000 | 0) - 3600); + await nft.grantRole(minterRole, tokenClaimer.address); + const token = nft.address; + const chainId = await web3.eth.getChainId(); + const address = tokenClaimer.address; + const startTime = Date.now() / 1000 | 0; + const saltNonce = (Math.random() * 1000) | 0; + let signStr = web3.utils.soliditySha3.apply(this, + [user, token, startTime, chainId, address, saltNonce]); + let signature = await web3.eth.sign(signStr, singer); + signature = signature.replace(/00$/, "1b").replace(/01$/, "1c"); + + const err = `NFTClaimer: already ended` + await expectRevert( + tokenClaimer.claim( + token, + startTime, + saltNonce, + signature, + { from: user } + ), + err + ); + }); }); \ No newline at end of file