Skip to main content
Glama
pause-resume-blockchain-node.e2e.test.ts3.81 kB
import { afterAll, afterEach, beforeAll, describe, expect, setDefaultTimeout, test } from "bun:test"; import { NODE_NAME_3_WITHOUT_PK } from "./constants/test-resources"; import { forceExitAllCommands, runCommand } from "./utils/run-command"; import { findBlockchainNodeByName } from "./utils/test-resources"; const COMMAND_TEST_SCOPE = __filename; setDefaultTimeout(15 * 60_000); // 15 minutes timeout for blockchain node operations afterEach(() => { forceExitAllCommands(COMMAND_TEST_SCOPE); }); describe("Pause and resume blockchain node operations using the SDK", () => { let blockchainNodeUniqueName: string; beforeAll(async () => { const blockchainNode = await findBlockchainNodeByName(NODE_NAME_3_WITHOUT_PK); blockchainNodeUniqueName = blockchainNode?.uniqueName!; expect(blockchainNodeUniqueName).toBeString(); }); afterAll(async () => { const blockchainNode = await findBlockchainNodeByName(NODE_NAME_3_WITHOUT_PK); if (blockchainNode?.status !== "COMPLETED" && blockchainNode?.status !== "RESUMING") { await runCommand(COMMAND_TEST_SCOPE, [ "platform", "resume", "blockchain-node", blockchainNodeUniqueName, "--accept-defaults", ]).result; } }); test("Pause and resume a blockchain node", async () => { // Pause the blockchain node const { output: pauseOutput } = await runCommand(COMMAND_TEST_SCOPE, [ "platform", "pause", "blockchain-node", blockchainNodeUniqueName, "--wait", "--accept-defaults", ]).result; expect(pauseOutput).toInclude(`Blockchain node ${NODE_NAME_3_WITHOUT_PK} pause initiated successfully`); expect(pauseOutput).toInclude("Blockchain node is paused"); // Resume the blockchain node const { output: resumeOutput } = await runCommand(COMMAND_TEST_SCOPE, [ "platform", "resume", "blockchain-node", blockchainNodeUniqueName, "--wait", "--accept-defaults", ]).result; expect(resumeOutput).toInclude(`Blockchain node ${NODE_NAME_3_WITHOUT_PK} resume initiated successfully`); expect(resumeOutput).toInclude("Blockchain node is resumed"); }); test("Pause blockchain node without waiting", async () => { // Pause without waiting const { output } = await runCommand(COMMAND_TEST_SCOPE, [ "platform", "pause", "blockchain-node", blockchainNodeUniqueName, "--accept-defaults", ]).result; expect(output).toInclude(`Blockchain node ${NODE_NAME_3_WITHOUT_PK} pause initiated successfully`); expect(output).not.toInclude("Waiting for blockchain node to be paused"); }); test("Resume blockchain node without waiting", async () => { // Resume without waiting const { output } = await runCommand(COMMAND_TEST_SCOPE, [ "platform", "resume", "blockchain-node", blockchainNodeUniqueName, "--accept-defaults", ]).result; expect(output).toInclude(`Blockchain node ${NODE_NAME_3_WITHOUT_PK} resume initiated successfully`); expect(output).not.toInclude("Waiting for blockchain node to be resumed"); }); test("Handle invalid blockchain node unique name", async () => { const invalidUniqueName = "non-existent-blockchain-node"; // Test pause with invalid name const pauseCommand = runCommand(COMMAND_TEST_SCOPE, [ "platform", "pause", "blockchain-node", invalidUniqueName, "--accept-defaults", ]); expect(pauseCommand.result).rejects.toThrow(); // Test resume with invalid name const resumeCommand = runCommand(COMMAND_TEST_SCOPE, [ "platform", "resume", "blockchain-node", invalidUniqueName, "--accept-defaults", ]); expect(resumeCommand.result).rejects.toThrow(); }); });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/settlemint/sdk'

If you have feedback or need assistance with the MCP directory API, please join our Discord server