UNPKG

decentraland-ui

Version:

Decentraland's UI components and styles

201 lines (200 loc) 6.64 kB
"use strict"; 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(); }); });