@@ -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} )
0 commit comments