From 558ad526f4311ac9d4d4e2495a3fc42afc5cbddf Mon Sep 17 00:00:00 2001 From: Daniel Shiposha Date: Wed, 14 Dec 2022 13:57:41 +0000 Subject: [PATCH] test: add+remove a property doesn't change consumed space --- --- a/tests/src/nesting/collectionProperties.test.ts +++ b/tests/src/nesting/collectionProperties.test.ts @@ -165,6 +165,28 @@ expect(consumedSpace).to.be.equal(originalSpace); } })); + + [ + {mode: 'nft' as const, requiredPallets: []}, + {mode: 'rft' as const, requiredPallets: [Pallets.ReFungible]}, + ].map(testCase => + itSub.ifWithPallets(`Adding then removing a collection property doesn't change the consumed space (${testCase.mode})`, testCase.requiredPallets, async({helper}) => { + const propKey = 'tok-prop'; + + const collection = await helper[testCase.mode].mintCollection(alice); + const originalSpace = await collection.getPropertiesConsumedSpace(); + + const propDataSize = 4096; + const propData = 'a'.repeat(propDataSize); + + await collection.setProperties(alice, [{key: propKey, value: propData}]); + let consumedSpace = await collection.getPropertiesConsumedSpace(); + expect(consumedSpace).to.be.equal(propDataSize); + + await collection.deleteProperties(alice, [propKey]); + consumedSpace = await collection.getPropertiesConsumedSpace(); + expect(consumedSpace).to.be.equal(originalSpace); + })); }); describe('Negative Integration Test: Collection Properties', () => { --- a/tests/src/nesting/tokenProperties.test.ts +++ b/tests/src/nesting/tokenProperties.test.ts @@ -367,6 +367,40 @@ expect(consumedSpace).to.be.equal(originalSpace); } })); + + [ + {mode: 'nft' as const, pieces: undefined, requiredPallets: []}, + {mode: 'rft' as const, pieces: 100n, requiredPallets: [Pallets.ReFungible]}, + ].map(testCase => + itSub.ifWithPallets(`Adding then removing a token property doesn't change the consumed space (${testCase.mode})`, testCase.requiredPallets, async({helper}) => { + const propKey = 'tok-prop'; + + const collection = await helper[testCase.mode].mintCollection(alice, { + tokenPropertyPermissions: [ + { + key: propKey, + permission: {mutable: true, tokenOwner: true}, + }, + ], + }); + const token = await ( + testCase.pieces + ? collection.mintToken(alice, testCase.pieces) + : collection.mintToken(alice) + ); + const originalSpace = await token.getTokenPropertiesConsumedSpace(); + + const propDataSize = 4096; + const propData = 'a'.repeat(propDataSize); + + await token.setProperties(alice, [{key: propKey, value: propData}]); + let consumedSpace = await token.getTokenPropertiesConsumedSpace(); + expect(consumedSpace).to.be.equal(propDataSize); + + await token.deleteProperties(alice, [propKey]); + consumedSpace = await token.getTokenPropertiesConsumedSpace(); + expect(consumedSpace).to.be.equal(originalSpace); + })); }); describe('Negative Integration Test: Token Properties', () => { -- gitstuff