mirror of
https://github.com/lens-protocol/core.git
synced 2026-04-22 03:02:03 -04:00
Tests updated
This commit is contained in:
@@ -60,6 +60,7 @@ export const CURRENCY_MINT_AMOUNT = parseEther('100');
|
||||
export const BPS_MAX = 10000;
|
||||
export const TREASURY_FEE_BPS = 50;
|
||||
export const REFERRAL_FEE_BPS = 250;
|
||||
export const MAX_PROFILE_IMAGE_URI_LENGTH = 6000;
|
||||
export const LENS_HUB_NFT_NAME = 'Lens Profiles';
|
||||
export const LENS_HUB_NFT_SYMBOL = 'LENS';
|
||||
export const MOCK_PROFILE_HANDLE = 'plant1ghost.eth';
|
||||
|
||||
@@ -18,6 +18,7 @@ export const ERRORS = {
|
||||
PUBLICATION_DOES_NOT_EXIST: 'PublicationDoesNotExist()',
|
||||
PROFILE_HANDLE_TAKEN: 'HandleTaken()',
|
||||
INVALID_HANDLE_LENGTH: 'HandleLengthInvalid()',
|
||||
INVALID_IMAGE_URI_LENGTH: 'ProfileImageURILengthInvalid()',
|
||||
HANDLE_CONTAINS_INVALID_CHARACTERS: 'HandleContainsInvalidCharacters()',
|
||||
NOT_FOLLOW_NFT: 'CallerNotFollowNFT()',
|
||||
NOT_COLLECT_NFT: 'CallerNotCollectNFT()',
|
||||
|
||||
@@ -14,6 +14,7 @@ import {
|
||||
FIRST_PROFILE_ID,
|
||||
lensHub,
|
||||
makeSuiteCleanRoom,
|
||||
MAX_PROFILE_IMAGE_URI_LENGTH,
|
||||
MOCK_FOLLOW_NFT_URI,
|
||||
MOCK_PROFILE_HANDLE,
|
||||
MOCK_PROFILE_URI,
|
||||
@@ -48,6 +49,14 @@ makeSuiteCleanRoom('Profile URI Functionality', function () {
|
||||
).to.be.revertedWith(ERRORS.NOT_PROFILE_OWNER_OR_DISPATCHER);
|
||||
});
|
||||
|
||||
it('UserTwo should fail to set the profile URI on profile owned by user 1', async function () {
|
||||
const profileURITooLong = MOCK_URI.repeat(500);
|
||||
expect(profileURITooLong.length).to.be.greaterThan(MAX_PROFILE_IMAGE_URI_LENGTH);
|
||||
await expect(
|
||||
lensHub.setProfileImageURI(FIRST_PROFILE_ID, profileURITooLong)
|
||||
).to.be.revertedWith(ERRORS.INVALID_IMAGE_URI_LENGTH);
|
||||
});
|
||||
|
||||
it('UserTwo should fail to change the follow NFT URI for profile one', async function () {
|
||||
await expect(
|
||||
lensHub.connect(userTwo).setFollowNFTURI(FIRST_PROFILE_ID, OTHER_MOCK_URI)
|
||||
@@ -92,45 +101,6 @@ makeSuiteCleanRoom('Profile URI Functionality', function () {
|
||||
);
|
||||
});
|
||||
|
||||
it('Default image should be used when imageURI does not meet length requirement', async function () {
|
||||
const imageURI = 'https://ipfs.io/ipfs/QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGs';
|
||||
await expect(lensHub.setProfileImageURI(FIRST_PROFILE_ID, imageURI)).to.not.be.reverted;
|
||||
const tokenURI = await lensHub.tokenURI(FIRST_PROFILE_ID);
|
||||
const jsonMetadata = await getJsonMetadataFromBase64TokenUri(tokenURI);
|
||||
expect(jsonMetadata.name).to.eq(`@${MOCK_PROFILE_HANDLE}`);
|
||||
expect(jsonMetadata.description).to.eq(`@${MOCK_PROFILE_HANDLE} - Lens profile`);
|
||||
const expectedAttributes = [
|
||||
{ trait_type: 'id', value: `#${FIRST_PROFILE_ID.toString()}` },
|
||||
{ trait_type: 'followers', value: '0' },
|
||||
{ trait_type: 'owner', value: userAddress.toLowerCase() },
|
||||
{ trait_type: 'handle', value: `@${MOCK_PROFILE_HANDLE}` },
|
||||
];
|
||||
expect(jsonMetadata.attributes).to.eql(expectedAttributes);
|
||||
expect(keccak256(toUtf8Bytes(tokenURI))).to.eq(
|
||||
'0xa21f2a3aa9300a248d3a7acd3f4ff309291653121df87ffe3be545fa1dbd65e5'
|
||||
);
|
||||
});
|
||||
|
||||
it('Default image should be used when imageURI does not match expected URI beginning', async function () {
|
||||
const imageURI =
|
||||
'https://gateway.pinata.cloud/ipfs/QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR';
|
||||
await expect(lensHub.setProfileImageURI(FIRST_PROFILE_ID, imageURI)).to.not.be.reverted;
|
||||
const tokenURI = await lensHub.tokenURI(FIRST_PROFILE_ID);
|
||||
const jsonMetadata = await getJsonMetadataFromBase64TokenUri(tokenURI);
|
||||
expect(jsonMetadata.name).to.eq(`@${MOCK_PROFILE_HANDLE}`);
|
||||
expect(jsonMetadata.description).to.eq(`@${MOCK_PROFILE_HANDLE} - Lens profile`);
|
||||
const expectedAttributes = [
|
||||
{ trait_type: 'id', value: `#${FIRST_PROFILE_ID.toString()}` },
|
||||
{ trait_type: 'followers', value: '0' },
|
||||
{ trait_type: 'owner', value: userAddress.toLowerCase() },
|
||||
{ trait_type: 'handle', value: `@${MOCK_PROFILE_HANDLE}` },
|
||||
];
|
||||
expect(jsonMetadata.attributes).to.eql(expectedAttributes);
|
||||
expect(keccak256(toUtf8Bytes(tokenURI))).to.eq(
|
||||
'0xa21f2a3aa9300a248d3a7acd3f4ff309291653121df87ffe3be545fa1dbd65e5'
|
||||
);
|
||||
});
|
||||
|
||||
it('Default image should be used when imageURI contains double-quotes', async function () {
|
||||
const imageURI =
|
||||
'https://ipfs.io/ipfs/QmbWqxBEKC3P8tqsKc98xmWNzrztRLMiMPL8wBuTGsMnR" <rect x="10" y="10" fill="red';
|
||||
|
||||
Reference in New Issue
Block a user