Skip to content

Commit 1854332

Browse files
author
Yash Agrawal
committed
feat: add test cases for setTokenURI
1 parent 26393fe commit 1854332

File tree

2 files changed

+70
-2
lines changed

2 files changed

+70
-2
lines changed

test/SBT.test.ts

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,4 +274,71 @@ describe('SBT', () => {
274274
expect(await sbt.tokenByIndex(1)).to.eq(1)
275275
})
276276
})
277+
278+
describe('setTokenURI', () => {
279+
it('The setTokenURI function should function correctly', async () => {
280+
const sbt = await init()
281+
const signers = await getSigners()
282+
283+
const metadata = await getDummyEncodedMetadata(sbt)
284+
await expect(
285+
sbt.connect(signers.minterA).mint(signers.userA.address, metadata)
286+
)
287+
.to.emit(sbt, 'Minted')
288+
.withArgs(0, signers.userA.address)
289+
const modifiedMetadata = await getDummyEncodedMetadata(sbt, "ABCURL")
290+
await expect(sbt.connect(signers.minterA).setTokenURI(0, modifiedMetadata))
291+
.to.be.emit(sbt, 'SetSBTTokenURI')
292+
.withArgs(0, modifiedMetadata)
293+
})
294+
295+
it('The setTokenURI function should function correctly for all minters', async () => {
296+
const sbt = await init()
297+
const signers = await getSigners()
298+
299+
const metadata = await getDummyEncodedMetadata(sbt)
300+
await expect(
301+
sbt.connect(signers.minterA).mint(signers.userA.address, metadata)
302+
)
303+
.to.emit(sbt, 'Minted')
304+
.withArgs(0, signers.userA.address)
305+
let modifiedMetadata = await getDummyEncodedMetadata(sbt, "ABCURL")
306+
await expect(sbt.connect(signers.minterA).setTokenURI(0, modifiedMetadata))
307+
.to.be.emit(sbt, 'SetSBTTokenURI')
308+
.withArgs(0, modifiedMetadata)
309+
310+
modifiedMetadata = await getDummyEncodedMetadata(sbt, "DEFURL")
311+
await expect(sbt.connect(signers.minterB).setTokenURI(0, modifiedMetadata))
312+
.to.be.emit(sbt, 'SetSBTTokenURI')
313+
.withArgs(0, modifiedMetadata)
314+
})
315+
316+
it('The setTokenURI function should function correctly for all minters and new minter', async () => {
317+
const sbt = await init()
318+
const signers = await getSigners()
319+
320+
await sbt.connect(signers.minterUpdater).addMinter(signers.minterC.address)
321+
322+
const metadata = await getDummyEncodedMetadata(sbt)
323+
await expect(
324+
sbt.connect(signers.minterA).mint(signers.userA.address, metadata)
325+
)
326+
.to.emit(sbt, 'Minted')
327+
.withArgs(0, signers.userA.address)
328+
let modifiedMetadata = await getDummyEncodedMetadata(sbt, "ABCURL")
329+
await expect(sbt.connect(signers.minterA).setTokenURI(0, modifiedMetadata))
330+
.to.be.emit(sbt, 'SetSBTTokenURI')
331+
.withArgs(0, modifiedMetadata)
332+
333+
modifiedMetadata = await getDummyEncodedMetadata(sbt, "DEFURL")
334+
await expect(sbt.connect(signers.minterB).setTokenURI(0, modifiedMetadata))
335+
.to.be.emit(sbt, 'SetSBTTokenURI')
336+
.withArgs(0, modifiedMetadata)
337+
338+
modifiedMetadata = await getDummyEncodedMetadata(sbt, "SDFSFURL")
339+
await expect(sbt.connect(signers.minterC).setTokenURI(0, modifiedMetadata))
340+
.to.be.emit(sbt, 'SetSBTTokenURI')
341+
.withArgs(0, modifiedMetadata)
342+
})
343+
})
277344
})

test/utils/index.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,15 @@ export const deploy = async (name: string): Promise<Contract> => {
1313
}
1414

1515
export const getDummyEncodedMetadata = async (
16-
contract: Contract
16+
contract: Contract,
17+
tokenURIImage = 'XYZURL'
1718
): Promise<string> =>
1819
(await contract.encodeMetadata(
1920
'Proof of service',
2021
'This is a proof of service NFT',
2122
[{ trait_type: 'A', value: 'A' }],
2223
[{ trait_type: '1', display_type: 'number', value: '1' }],
23-
'XYZURL'
24+
tokenURIImage
2425
)) as string
2526

2627
export const deployWithArg = async (

0 commit comments

Comments
 (0)