1234567891011121314151617import {IKeyringPair} from '@polkadot/types/types';18import {itSub, Pallets, usingPlaygrounds, expect, requirePalletsOrSkip, sizeOfProperty} from '../util';1920describe('Integration Test: Token Properties with sudo', () => {21 let superuser: IKeyringPair;22 let alice: IKeyringPair; 2324 before(async () => {25 await usingPlaygrounds(async (helper, privateKey) => {26 superuser = await privateKey('//Alice');27 const donor = await privateKey({url: import.meta.url});28 [alice] = await helper.arrange.createAccounts([100n], donor);29 });30 });3132 [33 {mode: 'nft' as const, pieces: undefined, requiredPallets: []} as const,34 {mode: 'rft' as const, pieces: 100n, requiredPallets: [Pallets.ReFungible]} as const,35 ].map(testSuite => describe(`${testSuite.mode.toUpperCase()}`, () => {36 before(async function() {37 38 await usingPlaygrounds(async helper => {39 requirePalletsOrSkip(this, helper, testSuite.requiredPallets);40 });41 });4243 itSub('force_repair_item preserves valid consumed space', async({helper}) => {44 const propKey = 'tok-prop';4546 const collection = await helper[testSuite.mode].mintCollection(alice, {47 tokenPropertyPermissions: [48 {49 key: propKey,50 permission: {mutable: true, tokenOwner: true},51 },52 ],53 });54 const token = await (55 testSuite.pieces56 ? collection.mintToken(alice, testSuite.pieces as any)57 : collection.mintToken(alice)58 );5960 const prop = {key: propKey, value: 'a'.repeat(4096)};6162 await token.setProperties(alice, [prop]);63 const originalSpace = await token.getTokenPropertiesConsumedSpace();64 expect(originalSpace).to.be.equal(sizeOfProperty(prop));6566 await helper.getSudo().executeExtrinsic(superuser, 'api.tx.unique.forceRepairItem', [token.collectionId, token.tokenId], true);67 const recomputedSpace = await token.getTokenPropertiesConsumedSpace();68 expect(recomputedSpace).to.be.equal(originalSpace);69 });70 }));71});