diff --git a/packages/integration-tests/src/entities.ts b/packages/integration-tests/src/entities.ts index 5c1879e5b..a35c0ff16 100644 --- a/packages/integration-tests/src/entities.ts +++ b/packages/integration-tests/src/entities.ts @@ -75,3 +75,7 @@ export enum BlockExplorer { baseUrl = "http://localhost:3010", localNetwork = "/?network=local", } + +export enum Values { + incorrectAddressFormat = "0xE4ce1da467a7Ca37727eb7e19857e5167DE25966123", +} diff --git a/packages/integration-tests/tests/api/accounts.test.ts b/packages/integration-tests/tests/api/accounts.test.ts index 401b1c702..1d95f697e 100644 --- a/packages/integration-tests/tests/api/accounts.test.ts +++ b/packages/integration-tests/tests/api/accounts.test.ts @@ -2,7 +2,7 @@ import * as request from "supertest"; import { environment } from "../../src/config"; import { localConfig } from "../../src/config"; -import { Buffer, Token, Wallets } from "../../src/entities"; +import { Buffer, Token, Values, Wallets } from "../../src/entities"; import { Helper } from "../../src/helper"; import { Playbook } from "../../src/playbook/playbook"; @@ -259,5 +259,301 @@ describe("API module: Account", () => { expect(typeof response.body.result[0].blockReward).toStrictEqual("string"); }); }); + + //id1968 + it("Verify /balance endpoint - Incorrect address format", async () => { + await helper.retryTestAction(async () => { + apiRoute = `/api?module=account&action=balance&address=${Values.incorrectAddressFormat}`; + response = await helper.performGETrequest(apiRoute); + + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual(expect.objectContaining({ result: "Invalid Address format" })); + }); + }); + //id1944 + it("Verify /balancemulti endpoint - Incorrect address format", async () => { + await helper.retryTestAction(async () => { + apiRoute = `/api?module=account&action=balancemulti&address=${Values.incorrectAddressFormat}`; + response = await helper.performGETrequest(apiRoute); + + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual(expect.objectContaining({ result: "Error! Invalid address format" })); + }); + }); + + it("Verify /balancemulti endpoint - No address in URL parameters", async () => { + await helper.retryTestAction(async () => { + apiRoute = `/api?module=account&action=balancemulti&address=`; + response = await helper.performGETrequest(apiRoute); + + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual(expect.objectContaining({ result: "Error! Missing address" })); + }); + }); + + //id1943 + it("Verify /tokennfttx endpoint - Incorrect contract address format", async () => { + await helper.retryTestAction(async () => { + const blocks = await request(environment.blockExplorerAPI).get("/blocks"); + const blockNumber = blocks.body.items[0].number; + apiRoute = `/api?module=account&action=tokennfttx&page=1&offset=10&sort=desc&endblock=${blockNumber}&startblock=0&contractaddress=${Values.incorrectAddressFormat}&address=${Wallets.richWalletAddress}`; + response = await helper.performGETrequest(apiRoute); + + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual( + expect.objectContaining({ result: "Error! Invalid contract address format" }) + ); + }); + }); + it("Verify /tokennfttx endpoint - Incorrect address format", async () => { + await helper.retryTestAction(async () => { + const blocks = await request(environment.blockExplorerAPI).get("/blocks"); + const blockNumber = blocks.body.items[0].number; + apiRoute = `/api?module=account&action=tokennfttx&page=1&offset=10&sort=desc&endblock=${blockNumber}&startblock=0&contractaddress=${Values.incorrectAddressFormat}&address=${Wallets.richWalletAddress}`; + response = await helper.performGETrequest(apiRoute); + + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual( + expect.objectContaining({ result: "Error! Invalid contract address format" }) + ); + }); + }); + + it("Verify /tokennfttx endpoint - Incorrect offset position in request", async () => { + await helper.retryTestAction(async () => { + const blocks = await request(environment.blockExplorerAPI).get("/blocks"); + const blockNumber = blocks.body.items[0].number; + apiRoute = `/api?module=account&action=tokennfttx&page=1&offset=0&sort=desc&endblock=${blockNumber}&startblock=0&contractaddress=${Wallets.richWalletAddress}&address=${Wallets.richWalletAddress}`; + response = await helper.performGETrequest(apiRoute); + + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual(expect.objectContaining({ result: "offset must not be less than 1" })); + }); + }); + + it("Verify /tokennfttx endpoint - Incorrect block number in request", async () => { + await helper.retryTestAction(async () => { + const blockNumber = "-99999999"; + apiRoute = `/api?module=account&action=tokennfttx&page=1&offset=10&sort=desc&endblock=${blockNumber}&startblock=0&contractaddress=${Wallets.richWalletAddress}&address=${Wallets.richWalletAddress}`; + response = await helper.performGETrequest(apiRoute); + + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual( + expect.objectContaining({ + result: "Validation failed: specified int is out of defined boundaries: [0;9007199254740991].", + }) + ); + }); + }); + + //id1940 + it("Verify /tokentx endpoint - Incorrect contract address format", async () => { + await helper.retryTestAction(async () => { + const blocks = await request(environment.blockExplorerAPI).get("/blocks"); + const blockNumber = blocks.body.items[0].number; + apiRoute = `/api?module=account&action=tokentx&page=1&offset=10&sort=desc&endblock=${blockNumber}&startblock=0&contractaddress=${Values.incorrectAddressFormat}&address=${Wallets.richWalletAddress}`; + response = await helper.performGETrequest(apiRoute); + + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual( + expect.objectContaining({ result: "Error! Invalid contract address format" }) + ); + }); + }); + it("Verify /tokentx endpoint - Incorrect address format", async () => { + await helper.retryTestAction(async () => { + const blocks = await request(environment.blockExplorerAPI).get("/blocks"); + const blockNumber = blocks.body.items[0].number; + apiRoute = `/api?module=account&action=tokentx&page=1&offset=10&sort=desc&endblock=${blockNumber}&startblock=0&contractaddress=${Wallets.richWalletAddress}&address=${Values.incorrectAddressFormat}`; + response = await helper.performGETrequest(apiRoute); + + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual(expect.objectContaining({ result: "Error! Invalid address format" })); + }); + }); + + it("Verify /tokentx endpoint - Incorrect offset position in request", async () => { + await helper.retryTestAction(async () => { + const blocks = await request(environment.blockExplorerAPI).get("/blocks"); + const blockNumber = blocks.body.items[0].number; + apiRoute = `/api?module=account&action=tokentx&page=1&offset=0&sort=desc&endblock=${blockNumber}&startblock=0&contractaddress=${Wallets.richWalletAddress}&address=${Wallets.richWalletAddress}`; + response = await helper.performGETrequest(apiRoute); + + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual(expect.objectContaining({ result: "offset must not be less than 1" })); + }); + }); + + it("Verify /tokentx endpoint - Incorrect block number in request", async () => { + await helper.retryTestAction(async () => { + const blockNumber = "-99999999"; + apiRoute = `/api?module=account&action=tokentx&page=1&offset=10&sort=desc&endblock=${blockNumber}&startblock=0&contractaddress=${Wallets.richWalletAddress}&address=${Wallets.richWalletAddress}`; + response = await helper.performGETrequest(apiRoute); + + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual( + expect.objectContaining({ + result: "Validation failed: specified int is out of defined boundaries: [0;9007199254740991].", + }) + ); + }); + }); + + //id1969 + it("Verify /getminedblocks endpoint - Incorrect contract address format", async () => { + await helper.retryTestAction(async () => { + apiRoute = `/api?module=account&action=getminedblocks&page=1&offset=10&address=${Values.incorrectAddressFormat}`; + response = await helper.performGETrequest(apiRoute); + + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual(expect.objectContaining({ result: "Invalid Address format" })); + }); + }); + + it("Verify /getminedblocks endpoint - Incorrect offset position in request", async () => { + await helper.retryTestAction(async () => { + apiRoute = `/api?module=account&action=getminedblocks&page=1&offset=0&address=${Wallets.richWalletAddress}`; + response = await helper.performGETrequest(apiRoute); + + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual(expect.objectContaining({ result: "offset must not be less than 1" })); + }); + }); + + it("Verify /getminedblocks endpoint - Incorrect page number in request", async () => { + await helper.retryTestAction(async () => { + apiRoute = `/api?module=account&action=getminedblocks&page=-1&offset=10&address=${Wallets.richWalletAddress}`; + response = await helper.performGETrequest(apiRoute); + + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual(expect.objectContaining({ result: "page must not be less than 1" })); + }); + }); + + //id1967 + it("Verify /txlist endpoint - Incorrect contract address format", async () => { + await helper.retryTestAction(async () => { + const blocks = await request(environment.blockExplorerAPI).get("/blocks"); + const blockNumber = blocks.body.items[0].number; + apiRoute = `/api?module=account&action=txlist&page=1&offset=10&sort=desc&endblock=${blockNumber}&startblock=0&address=${Values.incorrectAddressFormat}`; + response = await helper.performGETrequest(apiRoute); + + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual(expect.objectContaining({ result: "Invalid Address format" })); + }); + }); + + it("Verify /txlist endpoint - Incorrect offset position in request", async () => { + await helper.retryTestAction(async () => { + const blocks = await request(environment.blockExplorerAPI).get("/blocks"); + const blockNumber = blocks.body.items[0].number; + apiRoute = `/api?module=account&action=txlist&page=1&offset=0&sort=desc&endblock=${blockNumber}&startblock=0&address=${Wallets.richWalletAddress}`; + response = await helper.performGETrequest(apiRoute); + + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual(expect.objectContaining({ result: "offset must not be less than 1" })); + }); + }); + + it("Verify /txlist endpoint - Incorrect block number in request", async () => { + await helper.retryTestAction(async () => { + const blockNumber = "-99999999"; + apiRoute = `/api?module=account&action=txlist&page=1&offset=10&sort=desc&endblock=${blockNumber}&startblock=0&address=${Wallets.richWalletAddress}`; + response = await helper.performGETrequest(apiRoute); + + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual( + expect.objectContaining({ + result: "Validation failed: specified int is out of defined boundaries: [0;9007199254740991].", + }) + ); + }); + }); + + it("Verify /txlist endpoint - Incorrect page number in request", async () => { + await helper.retryTestAction(async () => { + const blocks = await request(environment.blockExplorerAPI).get("/blocks"); + const blockNumber = blocks.body.items[0].number; + apiRoute = `/api?module=account&action=txlist&page=-1&offset=10&sort=desc&endblock=${blockNumber}&startblock=0&address=${Wallets.richWalletAddress}`; + response = await helper.performGETrequest(apiRoute); + + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual(expect.objectContaining({ result: "page must not be less than 1" })); + }); + }); + + //id1935 + it("Verify /txlistinternal endpoint - Incorrect contract address format", async () => { + await helper.retryTestAction(async () => { + const blocks = await request(environment.blockExplorerAPI).get("/blocks"); + const blockNumber = blocks.body.items[0].number; + apiRoute = `/api?module=account&action=txlistinternal&page=1&offset=10&sort=desc&endblock=${blockNumber}&startblock=0&address=${Values.incorrectAddressFormat}`; + response = await helper.performGETrequest(apiRoute); + + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual(expect.objectContaining({ result: "Error! Invalid address format" })); + }); + }); + + it("Verify /txlistinternal endpoint - Incorrect offset position in request", async () => { + await helper.retryTestAction(async () => { + const blocks = await request(environment.blockExplorerAPI).get("/blocks"); + const blockNumber = blocks.body.items[0].number; + apiRoute = `/api?module=account&action=txlistinternal&page=1&offset=0&sort=desc&endblock=${blockNumber}&startblock=0&address=${Wallets.richWalletAddress}`; + response = await helper.performGETrequest(apiRoute); + + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual(expect.objectContaining({ result: "offset must not be less than 1" })); + }); + }); + + it("Verify /txlistinternal endpoint - Incorrect block number in request", async () => { + await helper.retryTestAction(async () => { + const blockNumber = "-99999999"; + apiRoute = `/api?module=account&action=txlistinternal&page=1&offset=10&sort=desc&endblock=${blockNumber}&startblock=0&address=${Wallets.richWalletAddress}`; + response = await helper.performGETrequest(apiRoute); + + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual( + expect.objectContaining({ + result: "Validation failed: specified int is out of defined boundaries: [0;9007199254740991].", + }) + ); + }); + }); + + it("Verify /txlistinternal endpoint - Incorrect page number in request", async () => { + await helper.retryTestAction(async () => { + const blocks = await request(environment.blockExplorerAPI).get("/blocks"); + const blockNumber = blocks.body.items[0].number; + apiRoute = `/api?module=account&action=txlistinternal&page=-1&offset=10&sort=desc&endblock=${blockNumber}&startblock=0&address=${Wallets.richWalletAddress}`; + response = await helper.performGETrequest(apiRoute); + + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual(expect.objectContaining({ result: "page must not be less than 1" })); + }); + }); }); }); diff --git a/packages/integration-tests/tests/api/blocks.test.ts b/packages/integration-tests/tests/api/blocks.test.ts index 6e058da87..410622262 100644 --- a/packages/integration-tests/tests/api/blocks.test.ts +++ b/packages/integration-tests/tests/api/blocks.test.ts @@ -114,5 +114,64 @@ describe("Blocks", () => { expect(typeof response.body.result.uncles).toStrictEqual("object"); }); }); + + it("Verify /getblocknobytime - No closest block present", async () => { + await helper.retryTestAction(async () => { + const blocks = await helper.performGETrequest("/blocks"); + const blockTimestamp = blocks.body.items[0].timestamp; + const timestampMilliseconds: number = new Date(blockTimestamp).getTime(); + const timestampSeconds: number = Math.floor(timestampMilliseconds / 1000) + 10000; + + apiRoute = `/api?module=block&action=getblocknobytime&closest=after×tamp=${timestampSeconds}`; + response = await helper.performGETrequest(apiRoute); + + expect(response.body).toStrictEqual(expect.objectContaining({ status: "1" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual(expect.objectContaining({ result: "Error! No closest block found" })); + }); + }); + + it("Verify /getblocknobytime - Incorrect timestamp format", async () => { + await helper.retryTestAction(async () => { + apiRoute = `/api?module=block&action=getblocknobytime&closest=before×tamp=9999999999999`; + response = await helper.performGETrequest(apiRoute); + + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual(expect.objectContaining({ result: "Error! Invalid parameter" })); + }); + }); + + //id1948 + it("Verify /getblockreward - No record found", async () => { + await helper.retryTestAction(async () => { + apiRoute = `/api?module=block&action=getblockreward&blockno=999999999999999`; + response = await helper.performGETrequest(apiRoute); + + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "No record found" })); + expect(response.body.result).toStrictEqual(expect.objectContaining({ blockNumber: null })); + expect(response.body.result).toStrictEqual(expect.objectContaining({ timeStamp: null })); + expect(response.body.result).toStrictEqual(expect.objectContaining({ blockMiner: null })); + expect(response.body.result).toStrictEqual(expect.objectContaining({ blockReward: null })); + expect(response.body.result).toStrictEqual(expect.objectContaining({ uncles: null })); + expect(response.body.result).toStrictEqual(expect.objectContaining({ uncleInclusionReward: null })); + }); + }); + + it("Verify /getblockreward - Validation error for block number", async () => { + await helper.retryTestAction(async () => { + apiRoute = `/api?module=block&action=getblockreward&blockno=123123123123123123123`; + response = await helper.performGETrequest(apiRoute); + + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual( + expect.objectContaining({ + result: "Validation failed: specified int is out of defined boundaries: [0;9007199254740991].", + }) + ); + }); + }); }); }); diff --git a/packages/integration-tests/tests/api/logs.test.ts b/packages/integration-tests/tests/api/logs.test.ts index 3a4bcd4bb..f15802b7d 100644 --- a/packages/integration-tests/tests/api/logs.test.ts +++ b/packages/integration-tests/tests/api/logs.test.ts @@ -39,7 +39,7 @@ describe("API module: Logs", () => { expect(response.body.result[0].data.length).toBe(194); expect(typeof response.body.result[0].blockNumber).toStrictEqual("string"); expect(response.body.result[0].blockNumber.startsWith("0x")).toBe(true); - expect(response.body.result[0].blockNumber.length).toBe(3); + expect(response.body.result[0].blockNumber.length).toBeGreaterThan(2); expect(typeof response.body.result[0].timeStamp).toStrictEqual("string"); expect(response.body.result[0].timeStamp.startsWith("0x")).toBe(true); expect(response.body.result[0].timeStamp.length).toBe(10); @@ -58,5 +58,75 @@ describe("API module: Logs", () => { expect(response.body.result[0].transactionIndex.length).toBe(3); }); }); + //@id1953:I + it("Verify /api?module=logs&action=getLogs response - Invalid address format", async () => { + await helper.retryTestAction(async () => { + apiRoute = `/api?module=logs&action=getLogs&page=1&offset=10&toBlock=99999999&fromBlock=0&address=0x8A63F953e19aA4Ce3ED90621EeF61sE17A95c6594`; + response = await helper.performGETrequest(apiRoute); + + expect(response.status).toBe(200); + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual(expect.objectContaining({ result: "Error! Invalid address format" })); + }); + }); + + //@id1953:II + it("Verify /api?module=logs&action=getLogs response - No record found", async () => { + await helper.retryTestAction(async () => { + apiRoute = `/api?module=logs&action=getLogs&page=1&offset=10&toBlock=99999999&fromBlock=0&address=0x8A63F953e19aA4Ce3ED90621EeF61E17A95c6594`; + response = await helper.performGETrequest(apiRoute); + + expect(response.status).toBe(200); + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "No record found" })); + expect(response.body).toStrictEqual(expect.objectContaining({ result: [] })); + }); + }); + + //@id1953:III + it("Verify /api?module=logs&action=getLogs response - Validation failed", async () => { + await helper.retryTestAction(async () => { + apiRoute = `/api?module=logs&action=getLogs&page=1&offset=10&toBlock=999999999999999999999999999&fromBlock=0&address=0xbf2A1ACE3B12b81bab4985f05E850AcFCCb416E0`; + response = await helper.performGETrequest(apiRoute); + + expect(response.status).toBe(200); + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual( + expect.objectContaining({ result: "Validation failed (numeric string is expected)" }) + ); + }); + }); + + //@id1953:IV + it("Verify /api?module=logs&action=getLogs response - offset must not be less than 1", async () => { + await helper.retryTestAction(async () => { + apiRoute = `/api?module=logs&action=getLogs&page=1&offset=0&toBlock=999999999999&fromBlock=0&address=0xbf2A1ACE3B12b81bab4985f05E850AcFCCb416E0`; + response = await helper.performGETrequest(apiRoute); + + expect(response.status).toBe(200); + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual(expect.objectContaining({ result: "offset must not be less than 1" })); + }); + }); + + //@id1953:V + it("Verify /api?module=logs&action=getLogs response - Validation failed: specified int is out of defined boundaries", async () => { + await helper.retryTestAction(async () => { + apiRoute = `/api?module=logs&action=getLogs&page=1&offset=10&toBlock=999999999999&fromBlock=-1&address=0xbf2A1ACE3B12b81bab4985f05E850AcFCCb416E0`; + response = await helper.performGETrequest(apiRoute); + + expect(response.status).toBe(200); + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual( + expect.objectContaining({ + result: "Validation failed: specified int is out of defined boundaries: [0;9007199254740991].", + }) + ); + }); + }); }); }); diff --git a/packages/integration-tests/tests/api/stats.test.ts b/packages/integration-tests/tests/api/stats.test.ts index 5f2704ea3..90e6fbdf4 100644 --- a/packages/integration-tests/tests/api/stats.test.ts +++ b/packages/integration-tests/tests/api/stats.test.ts @@ -22,4 +22,17 @@ describe("Stats", () => { expect(typeof response.body.totalTransactions).toStrictEqual("number"); }); }); + + //@id1955 + it("Verify the response via /action=ethprice endpoint - incorrect token name", async () => { + await helper.retryTestAction(async () => { + apiRoute = `/api?module=stats&action=ethprisce2`; + response = await helper.performGETrequest(apiRoute); + + expect(response.status).toBe(200); + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual(expect.objectContaining({ result: "Error! Missing Or invalid Action name" })); + }); + }); }); diff --git a/packages/integration-tests/tests/api/tokens.test.ts b/packages/integration-tests/tests/api/tokens.test.ts index b708f03f2..427556532 100644 --- a/packages/integration-tests/tests/api/tokens.test.ts +++ b/packages/integration-tests/tests/api/tokens.test.ts @@ -78,6 +78,34 @@ describe("Tokens", () => { await playbook.usePaymaster(); }); + //@id1956:I + it("Verify the /tokeninfo endpoint - Invalid contract address format", async () => { + await helper.retryTestAction(async () => { + apiRoute = `/api?module=token&action=tokeninfo&contractaddress=0x0faF6df7054946141266420b4ww3783387A78d82A9`; + response = await helper.performGETrequest(apiRoute); + + expect(response.status).toBe(200); + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual( + expect.objectContaining({ result: "Error! Invalid contract address format" }) + ); + }); + }); + + //@id1956:II + it("Verify the /tokeninfo endpoint - No data found", async () => { + await helper.retryTestAction(async () => { + apiRoute = `/api?module=token&action=tokeninfo&contractaddress=${Wallets.richWalletAddress}`; + response = await helper.performGETrequest(apiRoute); + + expect(response.status).toBe(200); + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "No data found" })); + expect(response.body).toStrictEqual(expect.objectContaining({ result: [] })); + }); + }); + //@id1448 it("Verify the custom ERC20 token transfer via /tokens/{address}/transfers", async () => { await helper.retryTestAction(async () => { diff --git a/packages/integration-tests/tests/api/transactions.test.ts b/packages/integration-tests/tests/api/transactions.test.ts index 58cd12003..ecc2006cd 100644 --- a/packages/integration-tests/tests/api/transactions.test.ts +++ b/packages/integration-tests/tests/api/transactions.test.ts @@ -1174,5 +1174,43 @@ describe("Transactions", () => { expect(typeof response.body.result.status).toStrictEqual("string"); }); }); + //@id1958 + it("Verify /api?module=transaction&action=getstatus response - incorrect transaction hash format", async () => { + await helper.retryTestAction(async () => { + apiRoute = `/api?module=transaction&action=getstatus&txhash=0x04a4757cd59681b037c1e7bdd2402cc45a23c66ed7497614879376719d34e020a`; + response = await helper.performGETrequest(apiRoute); + + expect(response.status).toBe(200); + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual(expect.objectContaining({ result: "Invalid transaction hash format" })); + }); + }); + + //@id1957:I + it("Verify /api?module=transaction&action=gettxreceiptstatus response - Invalid transaction hash format", async () => { + await helper.retryTestAction(async () => { + apiRoute = `/api?module=transaction&action=gettxreceiptstatus&txhash=0x04a4757cd59681b037c1e7bd2402cc45a23c66ed7497614879376719d34e020as`; + response = await helper.performGETrequest(apiRoute); + + expect(response.status).toBe(200); + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual(expect.objectContaining({ result: "Invalid transaction hash format" })); + }); + }); + + //@id1957:II + it("Verify /api?module=transaction&action=gettxreceiptstatus response - Invalid transaction hash format", async () => { + await helper.retryTestAction(async () => { + apiRoute = `/api?module=transaction&action=gettxreceiptstatus&txhash=`; + response = await helper.performGETrequest(apiRoute); + + expect(response.status).toBe(200); + expect(response.body).toStrictEqual(expect.objectContaining({ status: "0" })); + expect(response.body).toStrictEqual(expect.objectContaining({ message: "NOTOK" })); + expect(response.body).toStrictEqual(expect.objectContaining({ result: "Invalid transaction hash format" })); + }); + }); }); });