@@ -276,6 +276,38 @@ describe('SBT', () => {
276276 } )
277277
278278 describe ( 'setTokenURI' , ( ) => {
279+ it ( 'The setTokenURI function can be executed by minter' , async ( ) => {
280+ const sbt = await init ( )
281+ const signers = await getSigners ( )
282+
283+ let 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+
290+ metadata = await getDummyEncodedMetadata ( sbt , 'USERA' )
291+ await expect (
292+ sbt . connect ( signers . userA ) . setTokenURI ( 0 , metadata )
293+ ) . to . be . revertedWith ( 'Illegal access' )
294+
295+ metadata = await getDummyEncodedMetadata ( sbt , 'USERB' )
296+ await expect (
297+ sbt . connect ( signers . deployer ) . setTokenURI ( 0 , metadata )
298+ ) . to . be . revertedWith ( 'Illegal access' )
299+
300+ metadata = await getDummyEncodedMetadata ( sbt , 'USERC' )
301+ await expect (
302+ sbt . connect ( signers . proxyAdmin ) . setTokenURI ( 0 , metadata )
303+ ) . to . be . revertedWith ( 'Illegal access' )
304+
305+ metadata = await getDummyEncodedMetadata ( sbt , 'USERD' )
306+ await expect (
307+ sbt . connect ( signers . minterUpdater ) . setTokenURI ( 0 , metadata )
308+ ) . to . be . revertedWith ( 'Illegal access' )
309+ } )
310+
279311 it ( 'The setTokenURI function should function correctly' , async ( ) => {
280312 const sbt = await init ( )
281313 const signers = await getSigners ( )
@@ -354,5 +386,38 @@ describe('SBT', () => {
354386 . to . be . emit ( sbt , 'SetSBTTokenURI' )
355387 . withArgs ( 0 , modifiedMetadata )
356388 } )
389+
390+
391+ it ( 'The setTokenURI function should function correctly for multiple users' , async ( ) => {
392+ const sbt = await init ( )
393+ const signers = await getSigners ( )
394+
395+ const metadata = await getDummyEncodedMetadata ( sbt )
396+ await expect (
397+ sbt . connect ( signers . minterA ) . mint ( signers . userA . address , metadata )
398+ )
399+ . to . emit ( sbt , 'Minted' )
400+ . withArgs ( 0 , signers . userA . address )
401+
402+ await expect (
403+ sbt . connect ( signers . minterA ) . mint ( signers . userB . address , metadata )
404+ )
405+ . to . emit ( sbt , 'Minted' )
406+ . withArgs ( 1 , signers . userB . address )
407+
408+ let modifiedMetadata = await getDummyEncodedMetadata ( sbt , 'UserAURL' )
409+ await expect (
410+ sbt . connect ( signers . minterA ) . setTokenURI ( 0 , modifiedMetadata )
411+ )
412+ . to . be . emit ( sbt , 'SetSBTTokenURI' )
413+ . withArgs ( 0 , modifiedMetadata )
414+
415+ modifiedMetadata = await getDummyEncodedMetadata ( sbt , 'UserBURL' )
416+ await expect (
417+ sbt . connect ( signers . minterB ) . setTokenURI ( 1 , modifiedMetadata )
418+ )
419+ . to . be . emit ( sbt , 'SetSBTTokenURI' )
420+ . withArgs ( 1 , modifiedMetadata )
421+ } )
357422 } )
358423} )
0 commit comments