UNPKG

iotex-testnet-token-metadata

Version:

a collection of the metadata of all tokens on IoTeX blockchain.

80 lines (69 loc) 2.17 kB
const test = require("tape"); const tokenMetadata = require("../"); const fs = require("fs"); const path = require("path"); test("token-metadata is an object", function (t) { t.equal(typeof tokenMetadata, "object", "is an obj."); t.end(); }); test("logos file should exist", function (t) { Object.keys(tokenMetadata).forEach((address) => { const metadata = tokenMetadata[address]; if (!metadata.logo) return; const fileName = metadata.logo; const filePath = path.join(__dirname, "..", "images", fileName); t.ok(fs.existsSync(filePath), `file exists: "${fileName}"`); }); t.end(); }); test("no dup symbols", function (t) { const symbols = Object.values(tokenMetadata).map((address) => address.symbol); const symbolsCheck = new Map(); let duplicateSymbol; symbols.forEach((symbol) => { if (symbolsCheck.has(symbol) && symbol !== undefined) { duplicateSymbol = symbol; return; } symbolsCheck.set(symbol, true); }); const msg = duplicateSymbol ? `found overlapping symbol ${duplicateSymbol}` : "symbols should not overlap"; t.notOk(duplicateSymbol, msg); t.end(); }); test("symbols should be six or less characters", function (t) { Object.keys(tokenMetadata).forEach((address) => { const contract = tokenMetadata[address]; const symbol = contract.symbol; if (symbol) { t.notOk( symbol.length > 6, `symbol with more than 6 characters: "${symbol}"` ); } }); t.end(); }); test("logos path names should not contain space", function (t) { const dirContent = fs.readdirSync(path.join(__dirname, "..", "images")); Object.keys(tokenMetadata).forEach((address) => { const contract = tokenMetadata[address]; if (!contract.logo) return; const fileName = contract.logo; t.notOk( fileName.includes(" "), `filename does not include space: "${fileName}"` ); }); t.end(); }); test("logos icon should not be empty", function (t) { Object.keys(tokenMetadata).forEach((address) => { const contract = tokenMetadata[address]; const logo = contract.logo; t.notEqual(logo.length, 0); }); t.end(); });