From 86f3040f34dded0f90e93b64bf2a1866298fadfc Mon Sep 17 00:00:00 2001 From: Chef Cheems <81824236+Chef-Cheems@users.noreply.github.com> Date: Wed, 30 Jun 2021 04:46:24 +0300 Subject: [PATCH] Feature/improve tokenlist workflow (#179) * feat: Improve version handling * feat: Validate valid logoURI * feat: Verbose error messages for failed validation * feat: Add CI check * chore: Update README --- .github/workflows/tokenlist.yml | 27 +++ packages/token-lists/README.md | 8 +- ...aa29e63ffeb2ebf59b33ee61437e1a91a3bb2.png} | Bin ...1e0cd023a32532bf3969cddfc002c00e98429d.png | Bin 0 -> 3671 bytes ...A7163E153419E0E1064e418dd7A99314Ed27b6.png | Bin 0 -> 31419 bytes ...415a5727ea08aae4580057187923aec331227.png} | Bin ...84ce30DC3cF7909101C69086c50De191895883.png | Bin 0 -> 37706 bytes ...396bfc8a2f84748701167c2d622f041a1d7a17.png | Bin 0 -> 21355 bytes ...95f9da7b868b1822194faed312235e43007b49.png | Bin 0 -> 27525 bytes ...eac5ac2f758618dfa09bdbe0cf174e7d574d5b.png | Bin 0 -> 5072 bytes ...f0d72a118ce24fee3cd1d43d383897d05b4e99.png | Bin 0 -> 4788 bytes ...a49b4cbe004b6fd55b30ba1de6ac360ff9765d.png | Bin 0 -> 26424 bytes ...50a593d09fbc8dcd557b5c88cea6946a8b404a.png | Bin 0 -> 5478 bytes packages/token-lists/package.json | 3 +- packages/token-lists/src/buildList.ts | 46 +++- packages/token-lists/src/ci-check.ts | 62 ++++++ packages/token-lists/src/index.ts | 9 +- packages/token-lists/test/default.test.ts | 200 +++++++++++++----- 18 files changed, 286 insertions(+), 69 deletions(-) create mode 100644 .github/workflows/tokenlist.yml rename packages/token-lists/lists/images/{0x07AaA29E63FFEB2EBf59B33eE61437E1a91A3bb2.png => 0x07aaa29e63ffeb2ebf59b33ee61437e1a91a3bb2.png} (100%) create mode 100644 packages/token-lists/lists/images/0x431e0cd023a32532bf3969cddfc002c00e98429d.png create mode 100644 packages/token-lists/lists/images/0x4FA7163E153419E0E1064e418dd7A99314Ed27b6.png rename packages/token-lists/lists/images/{0x4e6415a5727ea08aAE4580057187923aeC331227.png => 0x4e6415a5727ea08aae4580057187923aec331227.png} (100%) create mode 100644 packages/token-lists/lists/images/0x5F84ce30DC3cF7909101C69086c50De191895883.png create mode 100644 packages/token-lists/lists/images/0x7e396bfc8a2f84748701167c2d622f041a1d7a17.png create mode 100644 packages/token-lists/lists/images/0x8595f9da7b868b1822194faed312235e43007b49.png create mode 100644 packages/token-lists/lists/images/0x85eac5ac2f758618dfa09bdbe0cf174e7d574d5b.png create mode 100644 packages/token-lists/lists/images/0xaef0d72a118ce24fee3cd1d43d383897d05b4e99.png create mode 100644 packages/token-lists/lists/images/0xc5a49b4cbe004b6fd55b30ba1de6ac360ff9765d.png create mode 100644 packages/token-lists/lists/images/0xe550a593d09fbc8dcd557b5c88cea6946a8b404a.png create mode 100644 packages/token-lists/src/ci-check.ts diff --git a/.github/workflows/tokenlist.yml b/.github/workflows/tokenlist.yml new file mode 100644 index 000000000..dbee13c5b --- /dev/null +++ b/.github/workflows/tokenlist.yml @@ -0,0 +1,27 @@ +name: Verify token lists + +on: + pull_request: + paths: + - "packages/token-lists/src/tokens/**" + - "packages/token-lists/lists/**" + +jobs: + verifyTokenLists: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Setup Node + uses: actions/setup-node@v2.1.2 + with: + node-version: 14.x + + - name: Install dependencies + run: yarn install + + - name: Check if tokenlists were updated correctly + working-directory: ./packages/token-lists + run: yarn ci-check diff --git a/packages/token-lists/README.md b/packages/token-lists/README.md index 3d0eba8df..7accc43f0 100644 --- a/packages/token-lists/README.md +++ b/packages/token-lists/README.md @@ -10,16 +10,18 @@ URLs to external lists are stored in `token-lists.json`, if you want your list t - Add an array of tokens under `src/tokens` - Add `checksum:newlistname`, `generate:newlistname`, `makelist:newlistname` command to `package.json` analogous to PancakeSwap default and extended list scripts. -- Modify `checksum.ts`, `buildList.ts` and `default.test.ts` to handle new list +- Modify `checksum.ts`, `buildList.ts`, `ci-check.ts`, and `default.test.ts` to handle new list ## How to add new tokens to PancakeSwap (extended) token list Note - this is not something we expect pull requests for. Unless you've been specifically asked by someone from PCS team please do no submit PRs to be listed on default PCS list. You can still trade your tokens on PCS exchange by pasting your address into the token field. -- Update version in `package.json` - Add new tokens to `src/tokens/pancakeswap-extended.json` file - Run `yarn makelist:pcs-extended` + - By default new list will have patch version number bumped by 1 (e.g. `2.0.1` -> `2.0.2`). + - If you want to bump minor version add `minor` after makelist command `yarn makelist:pcs-extended minor` + - If you want to bump major version add `major` after makelist command `yarn makelist:pcs-extended major` - If tests pass - new token list will be created under `lists` directory For list to be considered valid it need to satisfy the following criteria: @@ -30,7 +32,7 @@ For list to be considered valid it need to satisfy the following criteria: ## How to update Top100 Token list -Note - this is not something we expect pull requests for. +Note - this is not something we expect pull requests for. ```shell script # Fetch the Top100 Tokens on PancakeSwap v2, and update list. diff --git a/packages/token-lists/lists/images/0x07AaA29E63FFEB2EBf59B33eE61437E1a91A3bb2.png b/packages/token-lists/lists/images/0x07aaa29e63ffeb2ebf59b33ee61437e1a91a3bb2.png similarity index 100% rename from packages/token-lists/lists/images/0x07AaA29E63FFEB2EBf59B33eE61437E1a91A3bb2.png rename to packages/token-lists/lists/images/0x07aaa29e63ffeb2ebf59b33ee61437e1a91a3bb2.png diff --git a/packages/token-lists/lists/images/0x431e0cd023a32532bf3969cddfc002c00e98429d.png b/packages/token-lists/lists/images/0x431e0cd023a32532bf3969cddfc002c00e98429d.png new file mode 100644 index 0000000000000000000000000000000000000000..c509ae64852b161d7fe778b86984a08d37343409 GIT binary patch literal 3671 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 literal 0 HcmV?d00001 diff --git a/packages/token-lists/lists/images/0x4FA7163E153419E0E1064e418dd7A99314Ed27b6.png b/packages/token-lists/lists/images/0x4FA7163E153419E0E1064e418dd7A99314Ed27b6.png new file mode 100644 index 0000000000000000000000000000000000000000..6c7d127ac1ce45d4d88850784a9432b18546f71c GIT binary patch literal 31419 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

N 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�u3{&2_>?Q*6nZmP7`)rTjGRVAUV91h+dSG7@ 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 K6zb$GLH`BF^)&hb literal 0 HcmV?d00001 diff --git a/packages/token-lists/lists/images/0x85eac5ac2f758618dfa09bdbe0cf174e7d574d5b.png b/packages/token-lists/lists/images/0x85eac5ac2f758618dfa09bdbe0cf174e7d574d5b.png new file mode 100644 index 0000000000000000000000000000000000000000..74ec9785f66d5906d4def581f300768ddad9b779 GIT binary patch literal 5072 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 literal 0 HcmV?d00001 diff --git a/packages/token-lists/lists/images/0xaef0d72a118ce24fee3cd1d43d383897d05b4e99.png b/packages/token-lists/lists/images/0xaef0d72a118ce24fee3cd1d43d383897d05b4e99.png new file mode 100644 index 0000000000000000000000000000000000000000..981c0e371d376a8151c4180b5dd0af4c604f4495 GIT binary patch literal 4788 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 Xq(Pslo#%VbXXc(W&qO$!J-tCeLji)I4QH$@ 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 literal 0 HcmV?d00001 diff --git a/packages/token-lists/package.json b/packages/token-lists/package.json index 01e879c03..85d57684c 100644 --- a/packages/token-lists/package.json +++ b/packages/token-lists/package.json @@ -20,7 +20,8 @@ "generate:pcs-top-15": "yarn test && yarn build && node ./dist generate pancakeswap-top-15", "makelist:pcs-top-15": "yarn checksum:pcs-top-15 && yarn generate:pcs-top-15", "fetch:pcs-top-100": "yarn build && node ./dist fetch", - "test": "jest" + "test": "jest", + "ci-check": "yarn build && node ./dist ci-check" }, "dependencies": { "@ethersproject/address": "^5.1.0", diff --git a/packages/token-lists/src/buildList.ts b/packages/token-lists/src/buildList.ts index c0ddba983..151359e62 100644 --- a/packages/token-lists/src/buildList.ts +++ b/packages/token-lists/src/buildList.ts @@ -1,12 +1,27 @@ import fs from "fs"; import path from "path"; import { TokenList } from "@uniswap/token-lists"; -import { version } from "../package.json"; +import { version as pancakeswapDefaultVersion } from "../lists/pancakeswap-default.json"; +import { version as pancakeswapExtendedVersion } from "../lists/pancakeswap-extended.json"; +import { version as pancakeswapTop15Version } from "../lists/pancakeswap-top-15.json"; +import { version as pancakeswapTop100Version } from "../lists/pancakeswap-top-100.json"; import pancakeswapDefault from "./tokens/pancakeswap-default.json"; import pancakeswapExtended from "./tokens/pancakeswap-extended.json"; import pancakeswapTop100 from "./tokens/pancakeswap-top-100.json"; import pancakeswapTop15 from "./tokens/pancakeswap-top-15.json"; +export enum VersionBump { + "major" = "major", + "minor" = "minor", + "patch" = "patch", +} + +type Version = { + major: number; + minor: number; + patch: number; +}; + const lists = { "pancakeswap-default": { list: pancakeswapDefault, @@ -15,6 +30,7 @@ const lists = { logoURI: "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82/logo.png", sort: false, + currentVersion: pancakeswapDefaultVersion, }, "pancakeswap-extended": { list: pancakeswapExtended, @@ -23,6 +39,7 @@ const lists = { logoURI: "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82/logo.png", sort: true, + currentVersion: pancakeswapExtendedVersion, }, "pancakeswap-top-100": { list: pancakeswapTop100, @@ -31,6 +48,7 @@ const lists = { logoURI: "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82/logo.png", sort: true, + currentVersion: pancakeswapTop100Version, }, "pancakeswap-top-15": { list: pancakeswapTop15, @@ -39,20 +57,30 @@ const lists = { logoURI: "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82/logo.png", sort: true, + currentVersion: pancakeswapTop15Version, }, }; -export const buildList = (listName: string): TokenList => { - const [major, minor, patch] = version.split(".").map((versionNumber) => parseInt(versionNumber, 10)); - const { list, name, keywords, logoURI, sort } = lists[listName]; +const getNextVersion = (currentVersion: Version, versionBump?: VersionBump) => { + const { major, minor, patch } = currentVersion; + switch (versionBump) { + case VersionBump.major: + return { major: major + 1, minor, patch }; + case VersionBump.minor: + return { major, minor: minor + 1, patch }; + case VersionBump.patch: + default: + return { major, minor, patch: patch + 1 }; + } +}; + +export const buildList = (listName: string, versionBump?: VersionBump): TokenList => { + const { list, name, keywords, logoURI, sort, currentVersion } = lists[listName]; + const version = getNextVersion(currentVersion, versionBump); return { name, timestamp: new Date().toISOString(), - version: { - major, - minor, - patch, - }, + version, logoURI, keywords, // sort them by symbol for easy readability (not applied to default list) diff --git a/packages/token-lists/src/ci-check.ts b/packages/token-lists/src/ci-check.ts new file mode 100644 index 000000000..07559b496 --- /dev/null +++ b/packages/token-lists/src/ci-check.ts @@ -0,0 +1,62 @@ +import srcDefault from "./tokens/pancakeswap-default.json"; +import srcExtended from "./tokens/pancakeswap-extended.json"; +import srcTop100 from "./tokens/pancakeswap-top-100.json"; +import srcTop15 from "./tokens/pancakeswap-top-15.json"; +import defaultList from "../lists/pancakeswap-default.json"; +import extendedtList from "../lists/pancakeswap-extended.json"; +import top15List from "../lists/pancakeswap-top-15.json"; +import top100tList from "../lists/pancakeswap-top-100.json"; + +const lists = [ + { + name: "pancakeswap-default", + src: srcDefault, + actual: defaultList, + }, + { + name: "pancakeswap-extended", + src: srcExtended, + actual: extendedtList, + }, + { + name: "pancakeswap-top-15", + src: srcTop15, + actual: top15List, + }, + { + name: "pancakeswap-top-100", + src: srcTop100, + actual: top100tList, + }, +]; + +const compareLists = (listPair) => { + const { name, src, actual } = listPair; + if (src.length !== actual.tokens.length) { + throw Error( + `List ${name} seems to be not properly regenerated. Soure file has ${src.length} tokens but actual list has ${actual.tokens.length}. Did you forget to run yarn makelist?` + ); + } + src.sort((t1, t2) => (t1.address < t2.address ? -1 : 1)); + actual.tokens.sort((t1, t2) => (t1.address < t2.address ? -1 : 1)); + src.forEach((srcToken, index) => { + if (JSON.stringify(srcToken) !== JSON.stringify(actual.tokens[index])) { + throw Error( + `List ${name} seems to be not properly regenerated. Tokens from src/tokens directory don't match up with the final list. Did you forget to run yarn makelist?` + ); + } + }); +}; + +/** + * Check in CI that author properly updated token list + * i.e. not just changed token list in src/tokens but also regenerated lists with yarn makelist command. + * Github Action runs only on change in src/tokens directory. + */ +const ciCheck = (): void => { + lists.forEach((listPair) => { + compareLists(listPair); + }); +}; + +export default ciCheck; diff --git a/packages/token-lists/src/index.ts b/packages/token-lists/src/index.ts index 04942fa8e..e182c79a8 100644 --- a/packages/token-lists/src/index.ts +++ b/packages/token-lists/src/index.ts @@ -1,20 +1,25 @@ -import { buildList, saveList } from "./buildList"; +import { buildList, saveList, VersionBump } from "./buildList"; import checksumAddresses from "./checksum"; +import ciCheck from "./ci-check"; import topTokens from "./top-100"; const command = process.argv[2]; const listName = process.argv[3]; +const versionBump = process.argv[4]; switch (command) { case "checksum": checksumAddresses(listName); break; case "generate": - saveList(buildList(listName), listName); + saveList(buildList(listName, versionBump as VersionBump), listName); break; case "fetch": topTokens(); break; + case "ci-check": + ciCheck(); + break; default: console.info("Unknown command"); break; diff --git a/packages/token-lists/test/default.test.ts b/packages/token-lists/test/default.test.ts index b4adef98c..2375eda87 100644 --- a/packages/token-lists/test/default.test.ts +++ b/packages/token-lists/test/default.test.ts @@ -1,16 +1,48 @@ /* eslint-disable no-restricted-syntax */ import Ajv from "ajv"; +import fs from "fs"; +import path from "path"; import { getAddress } from "@ethersproject/address"; import { schema } from "@uniswap/token-lists"; -import packageJson from "../package.json"; -import { buildList } from "../src/buildList"; +import currentPancakeswapDefaultList from "../lists/pancakeswap-default.json"; +import currentPancakeswapExtendedtList from "../lists/pancakeswap-extended.json"; +import currentPancakeswapTop15List from "../lists/pancakeswap-top-15.json"; +import currentPancakeswapTop100tList from "../lists/pancakeswap-top-100.json"; +import { buildList, VersionBump } from "../src/buildList"; + +const currentLists = { + "pancakeswap-default": currentPancakeswapDefaultList, + "pancakeswap-extended": currentPancakeswapExtendedtList, + "pancakeswap-top-100": currentPancakeswapTop100tList, + "pancakeswap-top-15": currentPancakeswapTop15List, +}; + +const ajv = new Ajv({ allErrors: true, format: "full" }); +const validate = ajv.compile(schema); + +const pathToImages = process.env.CI + ? path.join(process.env.GITHUB_WORKSPACE, "packages", "token-lists", "lists", "images") + : path.join(path.resolve(), "lists", "images"); +const logoFiles = fs.readdirSync(pathToImages); + +// Modified https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore#_get +const getByAjvPath = (obj, propertyPath: string, defaultValue = undefined) => { + const travel = (regexp) => + String.prototype.split + .call(propertyPath.substring(1), regexp) + .filter(Boolean) + .reduce((res, key) => (res !== null && res !== undefined ? res[key] : res), obj); + const result = travel(/[,[\]]+?/) || travel(/[,[\].]+?/); + return result === undefined || result === obj ? defaultValue : result; +}; declare global { // eslint-disable-next-line @typescript-eslint/no-namespace namespace jest { interface Matchers { toBeDeclaredOnce(type: string, parameter: string, chainId: number): CustomMatcherResult; - toBeValid(validationErrors): CustomMatcherResult; + toBeValidTokenList(): CustomMatcherResult; + toBeValidLogo(): CustomMatcherResult; } } } @@ -28,69 +60,129 @@ expect.extend({ pass: false, }; }, - toBeValid(received, validationErrors) { - if (received) { + toBeValidTokenList(tokenList) { + const isValid = validate(tokenList); + if (isValid) { + return { + message: () => ``, + pass: true, + }; + } + const validationSummary = validate.errors + .map((error) => { + const value = getByAjvPath(tokenList, error.dataPath); + return `- ${error.dataPath.split(".").pop()} ${value} ${error.message}`; + }) + .join("\n"); + return { + message: () => `Validation failed:\n${validationSummary}`, + pass: false, + }; + }, + toBeValidLogo(token) { + // TW logos are always checksummed + const hasTWLogo = + token.logoURI === `https://assets.trustwalletapp.com/blockchains/smartchain/assets/${token.address}/logo.png`; + let hasLocalLogo = false; + const refersToLocalLogo = + token.logoURI === `https://tokens.pancakeswap.finance/images/${token.address}.png` || + token.logoURI === `https://tokens.pancakeswap.finance/images/${token.address.toLowerCase()}.png`; + if (token.logoURI === "https://tokens.pancakeswap.finance/images/0x4e6415a5727ea08aae4580057187923aec331227.png") { + console.log("refersToLocalLogo", refersToLocalLogo); + } + if (refersToLocalLogo) { + const fileName = token.logoURI.split("/").pop(); + // Note: fs.existsSync can't be used here because its not case sensetive + hasLocalLogo = logoFiles.includes(fileName); + } + if (hasTWLogo || hasLocalLogo) { return { message: () => ``, pass: true, }; } return { - message: () => `Validation failed: ${JSON.stringify(validationErrors, null, 2)}`, + message: () => `Token ${token.symbol} (${token.address}) has invalid logo: ${token.logoURI}`, pass: false, }; }, }); -const ajv = new Ajv({ allErrors: true, format: "full" }); -const validate = ajv.compile(schema); +describe.each([["pancakeswap-default"], ["pancakeswap-extended"], ["pancakeswap-top-100"], ["pancakeswap-top-15"]])( + "buildList %s", + (listName) => { + const defaultTokenList = buildList(listName); -describe.each([["pancakeswap-default"], ["pancakeswap-extended"], ["pancakeswap-top-100"], ["pancakeswap-top-15"]])("buildList %s", (listName) => { - const defaultTokenList = buildList(listName); + it("validates", () => { + expect(defaultTokenList).toBeValidTokenList(); + }); - it("validates", () => { - expect(validate(defaultTokenList)).toBeValid(validate.errors); - }); + it("contains no duplicate addresses", () => { + const map = {}; + for (const token of defaultTokenList.tokens) { + const key = `${token.chainId}-${token.address.toLowerCase()}`; + expect(map[key]).toBeDeclaredOnce("address", token.address.toLowerCase(), token.chainId); + map[key] = true; + } + }); - it("contains no duplicate addresses", () => { - const map = {}; - for (const token of defaultTokenList.tokens) { - const key = `${token.chainId}-${token.address.toLowerCase()}`; - expect(map[key]).toBeDeclaredOnce("address", token.address.toLowerCase(), token.chainId); - map[key] = true; - } - }); - - // Commented out since we now have duplicate symbols ("ONE") on exchange - // doesn't seem to affect any functionality at the moment though - // it("contains no duplicate symbols", () => { - // const map = {}; - // for (const token of defaultTokenList.tokens) { - // const key = `${token.chainId}-${token.symbol.toLowerCase()}`; - // expect(map[key]).toBeDeclaredOnce("symbol", token.symbol.toLowerCase(), token.chainId); - // map[key] = true; - // } - // }); - - it("contains no duplicate names", () => { - const map = {}; - for (const token of defaultTokenList.tokens) { - const key = `${token.chainId}-${token.name.toLowerCase()}`; - expect(map[key]).toBeDeclaredOnce("name", token.name.toLowerCase(), token.chainId); - map[key] = true; - } - }); + // Commented out since we now have duplicate symbols ("ONE") on exchange + // doesn't seem to affect any functionality at the moment though + // it("contains no duplicate symbols", () => { + // const map = {}; + // for (const token of defaultTokenList.tokens) { + // const key = `${token.chainId}-${token.symbol.toLowerCase()}`; + // expect(map[key]).toBeDeclaredOnce("symbol", token.symbol.toLowerCase(), token.chainId); + // map[key] = true; + // } + // }); - it("all addresses are valid and checksummed", () => { - for (const token of defaultTokenList.tokens) { - expect(getAddress(token.address)).toBe(token.address); - } - }); - - it("version matches package.json", () => { - expect(packageJson.version).toMatch(/^\d+\.\d+\.\d+$/); - expect(packageJson.version).toBe( - `${defaultTokenList.version.major}.${defaultTokenList.version.minor}.${defaultTokenList.version.patch}` - ); - }); -}); + it("contains no duplicate names", () => { + const map = {}; + for (const token of defaultTokenList.tokens) { + const key = `${token.chainId}-${token.name.toLowerCase()}`; + expect(map[key]).toBeDeclaredOnce("name", token.name.toLowerCase(), token.chainId); + map[key] = true; + } + }); + + it("all addresses are valid and checksummed", () => { + for (const token of defaultTokenList.tokens) { + expect(getAddress(token.address)).toBe(token.address); + } + }); + + it("all tokens have correct logos", () => { + for (const token of defaultTokenList.tokens) { + expect(token).toBeValidLogo(); + } + }); + + it("version gets patch bump if no versionBump sepcified", () => { + expect(defaultTokenList.version.major).toBe(currentLists[listName].version.major); + expect(defaultTokenList.version.minor).toBe(currentLists[listName].version.minor); + expect(defaultTokenList.version.patch).toBe(currentLists[listName].version.patch + 1); + }); + + it("version gets patch bump if patch versionBump is sepcified", () => { + const defaultTokenListPatchBump = buildList(listName, VersionBump.patch); + expect(defaultTokenListPatchBump.version.major).toBe(currentLists[listName].version.major); + expect(defaultTokenListPatchBump.version.minor).toBe(currentLists[listName].version.minor); + expect(defaultTokenListPatchBump.version.patch).toBe(currentLists[listName].version.patch + 1); + }); + + it("version gets minor bump if minor versionBump is sepcified", () => { + const defaultTokenListMinorBump = buildList(listName, VersionBump.minor); + expect(defaultTokenListMinorBump.version.major).toBe(currentLists[listName].version.major); + expect(defaultTokenListMinorBump.version.minor).toBe(currentLists[listName].version.minor + 1); + expect(defaultTokenListMinorBump.version.patch).toBe(currentLists[listName].version.patch); + }); + + it("version gets minor bump if major versionBump is sepcified", () => { + const defaultTokenListMajorBump = buildList(listName, VersionBump.major); + expect(defaultTokenListMajorBump.version.major).toBe(currentLists[listName].version.major + 1); + expect(defaultTokenListMajorBump.version.minor).toBe(currentLists[listName].version.minor); + expect(defaultTokenListMajorBump.version.patch).toBe(currentLists[listName].version.patch); + }); + } +);