decentraland-ui
Version:
Decentraland's UI components and styles
201 lines (200 loc) • 6.64 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var react_1 = __importDefault(require("react"));
var schemas_1 = require("@dcl/schemas");
var react_2 = require("@testing-library/react");
var NFTCard_1 = require("./NFTCard");
function renderNFTCard(props) {
return (0, react_2.render)(react_1.default.createElement(NFTCard_1.NFTCard, __assign({ nft: {} }, props)));
}
var screen;
describe('when rendering an ens', function () {
var ensNFT;
beforeEach(function () {
ensNFT = {
id: 'id',
category: schemas_1.NFTCategory.ENS,
network: schemas_1.Network.ETHEREUM,
data: {
ens: {
subdomain: 'subdomain'
}
}
};
screen = renderNFTCard({ nft: ensNFT });
});
it('should render the subdomain', function () {
expect(screen.getByText(ensNFT.data.ens.subdomain)).toBeInTheDocument();
});
it('should render the network', function () {
expect(screen.getByText('Ethereum')).toBeInTheDocument();
});
});
describe('when rendering a parcel', function () {
var parcelNFT;
beforeEach(function () {
parcelNFT = {
id: 'id',
category: schemas_1.NFTCategory.PARCEL,
network: schemas_1.Network.ETHEREUM,
data: {
parcel: {
x: '1',
y: '2'
}
}
};
screen = renderNFTCard({ nft: parcelNFT });
});
it('should render the parcel position', function () {
expect(screen.getByText('1,2')).toBeInTheDocument();
});
});
describe('when rendering an estate', function () {
var estateNFT;
beforeEach(function () {
estateNFT = {
id: 'id',
category: schemas_1.NFTCategory.ESTATE,
network: schemas_1.Network.ETHEREUM,
data: {
estate: {
parcels: [
{ x: 1, y: 2 },
{ x: 1, y: 1 }
]
}
}
};
screen = renderNFTCard({ nft: estateNFT });
});
it('should render the amount of parcels', function () {
expect(screen.getByText('2 LAND')).toBeInTheDocument();
});
});
describe('when rendering a wearable', function () {
var wearableNFT;
beforeEach(function () {
wearableNFT = {
id: 'id',
name: 'wearable name',
category: schemas_1.NFTCategory.WEARABLE,
network: schemas_1.Network.ETHEREUM,
owner: '0x1231123',
data: {
wearable: {
category: schemas_1.WearableCategory.EYES,
bodyShapes: [schemas_1.BodyShape.FEMALE],
isSmart: true,
rarity: schemas_1.Rarity.COMMON
}
}
};
screen = renderNFTCard({ nft: wearableNFT });
});
it('should render the wearable name', function () {
expect(screen.getByText(wearableNFT.name)).toBeInTheDocument();
});
it('should render the trimmed wearable owner', function () {
expect(screen.getByText('0x1231')).toBeInTheDocument();
});
it('should render the rarity tag', function () {
expect(screen.getByText(schemas_1.Rarity.COMMON)).toBeInTheDocument();
});
it('should render the smart tag', function () {
expect(screen.getByLabelText('Smart')).toBeInTheDocument();
});
});
describe('when rendering an emote', function () {
var emoteNFT;
beforeEach(function () {
emoteNFT = {
id: 'id',
name: 'emote name',
category: schemas_1.NFTCategory.EMOTE,
network: schemas_1.Network.ETHEREUM,
owner: '0x1231123',
data: {
emote: {
loop: true,
hasSound: true,
rarity: schemas_1.Rarity.COMMON,
category: schemas_1.EmoteCategory.FUN
}
}
};
screen = renderNFTCard({ nft: emoteNFT });
});
it('should render the rarity tag', function () {
expect(screen.getByText(schemas_1.Rarity.COMMON)).toBeInTheDocument();
});
});
describe('when a price is defined', function () {
var emoteNFT;
beforeEach(function () {
emoteNFT = {
id: 'id',
name: 'emote name',
category: schemas_1.NFTCategory.EMOTE,
network: schemas_1.Network.ETHEREUM,
owner: '0x1231123',
data: {
emote: {
loop: true,
hasSound: true,
rarity: schemas_1.Rarity.COMMON,
category: schemas_1.EmoteCategory.FUN
}
}
};
screen = renderNFTCard({ nft: emoteNFT, price: '12' });
});
it('should render the price in MANA', function () {
expect(screen.getByText('12')).toBeInTheDocument();
});
});
describe('when a custom header is defined', function () {
var emoteNFT;
beforeEach(function () {
emoteNFT = {
id: 'id',
name: 'emote name',
category: schemas_1.NFTCategory.EMOTE,
network: schemas_1.Network.ETHEREUM,
owner: '0x1231123',
data: {
emote: {
loop: true,
hasSound: true,
rarity: schemas_1.Rarity.COMMON,
category: schemas_1.EmoteCategory.FUN
}
}
};
screen = renderNFTCard({
nft: emoteNFT,
price: '12',
header: 'My custom header'
});
});
it('should render the header text', function () {
expect(screen.getByText('My custom header')).toBeInTheDocument();
});
it('should not render the wearable name', function () {
expect(screen.queryByText(emoteNFT.name)).not.toBeInTheDocument();
});
});