1234567891011121314151617import {IKeyringPair} from '@polkadot/types/types';18import {itSub, Pallets, usingPlaygrounds, expect, requirePalletsOrSkip} from '../util';1920describe('Integration Test: Token Properties', () => {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({filename: __filename});28 [alice] = await helper.arrange.createAccounts([100n], donor);29 });30 });3132 [33 {mode: 'nft' as const, pieces: undefined, requiredPallets: []},34 {mode: 'rft' as const, pieces: 100n, requiredPallets: [Pallets.ReFungible]}, 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 });42 43 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)57 : collection.mintToken(alice)58 );5960 const propDataSize = 4096;61 const propData = 'a'.repeat(propDataSize);6263 await token.setProperties(alice, [{key: propKey, value: propData}]);64 const originalSpace = await token.getTokenPropertiesConsumedSpace();65 expect(originalSpace).to.be.equal(propDataSize);6667 await helper.getSudo().executeExtrinsic(superuser, 'api.tx.unique.forceRepairItem', [token.collectionId, token.tokenId], true);68 const recomputedSpace = await token.getTokenPropertiesConsumedSpace();69 expect(recomputedSpace).to.be.equal(originalSpace);70 });71 }));72});