git.delta.rocks / unique-network / refs/commits / 50f8d1b0c87e

difftreelog

test manage properties of a nested token

Daniel Shiposha2022-06-30parent: #e20b05e.patch.diff
in: master

1 file changed

modifiedtests/src/nesting/properties.test.tsdiffbeforeafterboth
3import {3import {
4 addCollectionAdminExpectSuccess,4 addCollectionAdminExpectSuccess,
5 createCollectionExpectSuccess,5 createCollectionExpectSuccess,
6 setCollectionPermissionsExpectSuccess,
6 createItemExpectSuccess,7 createItemExpectSuccess,
7 getCreateCollectionResult,8 getCreateCollectionResult,
8 transferExpectSuccess,9 transferExpectSuccess,
9} from '../util/helpers';10} from '../util/helpers';
10import {IKeyringPair} from '@polkadot/types/types';11import {IKeyringPair} from '@polkadot/types/types';
12import { tokenIdToAddress } from '../eth/util/helpers';
1113
12let alice: IKeyringPair;14let alice: IKeyringPair;
13let bob: IKeyringPair;15let bob: IKeyringPair;
522describe('Integration Test: Token Properties', () => {524describe('Integration Test: Token Properties', () => {
523 let collection: number;525 let collection: number;
524 let token: number;526 let token: number;
527 let nestedToken: number;
525 let permissions: {permission: any, signers: IKeyringPair[]}[];528 let permissions: {permission: any, signers: IKeyringPair[]}[];
526529
527 before(async () => {530 before(async () => {
544 beforeEach(async () => {547 beforeEach(async () => {
545 await usingApi(async () => {548 await usingApi(async () => {
546 collection = await createCollectionExpectSuccess();549 collection = await createCollectionExpectSuccess();
550 await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {tokenOwner: true}});
551
547 token = await createItemExpectSuccess(alice, collection, 'NFT');552 token = await createItemExpectSuccess(alice, collection, 'NFT');
553 nestedToken = await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: tokenIdToAddress(collection, token)});
554
548 await addCollectionAdminExpectSuccess(alice, collection, bob.address);555 await addCollectionAdminExpectSuccess(alice, collection, bob.address);
549 await transferExpectSuccess(collection, token, alice, charlie);556 await transferExpectSuccess(collection, token, alice, charlie);
682 });689 });
683 });690 });
691
692 it('Assigns properties to a nested token according to permissions', async () => {
693 await usingApi(async api => {
694 const propertyKeys: string[] = [];
695 let i = 0;
696 for (const permission of permissions) {
697 for (const signer of permission.signers) {
698 const key = i + '_' + signer.address;
699 propertyKeys.push(key);
700
701 await expect(executeTransaction(
702 api,
703 alice,
704 api.tx.unique.setTokenPropertyPermissions(collection, [{key: key, permission: permission.permission}]),
705 ), `on setting permission ${i} by ${signer.address}`).to.not.be.rejected;
706
707 await expect(executeTransaction(
708 api,
709 signer,
710 api.tx.unique.setTokenProperties(collection, nestedToken, [{key: key, value: 'Serotonin increase'}]),
711 ), `on adding property ${i} by ${signer.address}`).to.not.be.rejected;
712 }
713
714 i++;
715 }
716
717 const properties = (await api.rpc.unique.tokenProperties(collection, nestedToken, propertyKeys)).toHuman() as any[];
718 const tokensData = (await api.rpc.unique.tokenData(collection, nestedToken, propertyKeys)).toHuman().properties as any[];
719 for (let i = 0; i < properties.length; i++) {
720 expect(properties[i].value).to.be.equal('Serotonin increase');
721 expect(tokensData[i].value).to.be.equal('Serotonin increase');
722 }
723 });
724 });
725
726 it('Changes properties of a nested token according to permissions', async () => {
727 await usingApi(async api => {
728 const propertyKeys: string[] = [];
729 let i = 0;
730 for (const permission of permissions) {
731 if (!permission.permission.mutable) continue;
732
733 for (const signer of permission.signers) {
734 const key = i + '_' + signer.address;
735 propertyKeys.push(key);
736
737 await expect(executeTransaction(
738 api,
739 alice,
740 api.tx.unique.setTokenPropertyPermissions(collection, [{key: key, permission: permission.permission}]),
741 ), `on setting permission ${i} by ${signer.address}`).to.not.be.rejected;
742
743 await expect(executeTransaction(
744 api,
745 signer,
746 api.tx.unique.setTokenProperties(collection, nestedToken, [{key: key, value: 'Serotonin increase'}]),
747 ), `on adding property ${i} by ${signer.address}`).to.not.be.rejected;
748
749 await expect(executeTransaction(
750 api,
751 signer,
752 api.tx.unique.setTokenProperties(collection, nestedToken, [{key: key, value: 'Serotonin stable'}]),
753 ), `on changing property ${i} by ${signer.address}`).to.not.be.rejected;
754 }
755
756 i++;
757 }
758
759 const properties = (await api.rpc.unique.tokenProperties(collection, nestedToken, propertyKeys)).toHuman() as any[];
760 const tokensData = (await api.rpc.unique.tokenData(collection, nestedToken, propertyKeys)).toHuman().properties as any[];
761 for (let i = 0; i < properties.length; i++) {
762 expect(properties[i].value).to.be.equal('Serotonin stable');
763 expect(tokensData[i].value).to.be.equal('Serotonin stable');
764 }
765 });
766 });
767
768 it('Deletes properties of a nested token according to permissions', async () => {
769 await usingApi(async api => {
770 const propertyKeys: string[] = [];
771 let i = 0;
772
773 for (const permission of permissions) {
774 if (!permission.permission.mutable) continue;
775
776 for (const signer of permission.signers) {
777 const key = i + '_' + signer.address;
778 propertyKeys.push(key);
779
780 await expect(executeTransaction(
781 api,
782 alice,
783 api.tx.unique.setTokenPropertyPermissions(collection, [{key: key, permission: permission.permission}]),
784 ), `on setting permission ${i} by ${signer.address}`).to.not.be.rejected;
785
786 await expect(executeTransaction(
787 api,
788 signer,
789 api.tx.unique.setTokenProperties(collection, nestedToken, [{key: key, value: 'Serotonin increase'}]),
790 ), `on adding property ${i} by ${signer.address}`).to.not.be.rejected;
791
792 await expect(executeTransaction(
793 api,
794 signer,
795 api.tx.unique.deleteTokenProperties(collection, nestedToken, [key]),
796 ), `on deleting property ${i} by ${signer.address}`).to.not.be.rejected;
797 }
798
799 i++;
800 }
801
802 const properties = (await api.rpc.unique.tokenProperties(collection, nestedToken, propertyKeys)).toJSON() as any[];
803 expect(properties).to.be.empty;
804 const tokensData = (await api.rpc.unique.tokenData(collection, nestedToken, propertyKeys)).toJSON().properties as any[];
805 expect(tokensData).to.be.empty;
806 expect((await api.query.nonfungible.tokenProperties(collection, nestedToken)).toJSON().consumedSpace).to.be.equal(0);
807 });
808 });
684});809});
685810
686describe('Negative Integration Test: Token Properties', () => {811describe('Negative Integration Test: Token Properties', () => {