Emulator
Flow Javascript Testing Framework exposes emulator
singleton allowing you to run and stop emulator instance
programmatically. There are two methods available on it.
emulator.start(options)
​
Starts emulator on random available port, unless overriden in options. Returns Promise.
Arguments​
Name | Type | Optional | Description |
---|---|---|---|
options | EmulatorOptions | ✅ | an object containing options for starting the emulator |
EmulatorOptions​
Key | Type | Optional | Description |
---|---|---|---|
logging | boolean | ✅ | whether log messages from emulator shall be added to the output (default: false) |
flags | string | ✅ | custom command-line flags to supply to the emulator (default: "") |
adminPort | number | ✅ | override the port which the emulator will run the admin server on (default: auto) |
restPort | number | ✅ | override the port which the emulator will run the REST server on (default: auto) |
grpcPort | number | ✅ | override the port which the emulator will run the GRPC server on (default: auto) |
debuggerPort | number | ✅ | override the port which the emulator will run the debug server on (default: auto) |
Returns​
Type | Description |
---|---|
Promise | Promise, which resolves to true if emulator started successfully |
Usage​
_13import {emulator, init} from "@onflow/flow-js-testing"_13_13describe("test setup", () => {_13 // Instantiate emulator and path to Cadence files_13 beforeEach(async () => {_13 const basePath = path.resolve(__dirname, "../cadence")_13_13 await init(basePath)_13_13 // Start emulator instance on auto-selected available ports_13 await emulator.start()_13 })_13})
emulator.stop()
​
Stops emulator instance. Returns Promise.
Arguments​
This method does not expect any arguments.
Usage​
_16import {emulator, init} from "@onflow/flow-js-testing"_16_16describe("test setup", () => {_16 // Instantiate emulator and path to Cadence files_16 beforeEach(async () => {_16 const basePath = path.resolve(__dirname, "../cadence")_16_16 await init(basePath)_16 await emulator.start()_16 })_16_16 // Stop emulator, so it could be restarted_16 afterEach(async () => {_16 await emulator.stop()_16 })_16})
emulator.setLogging(newState)
​
Set logging flag on emulator, allowing to temporally enable/disable logging.
Arguments​
Name | Type | Description |
---|---|---|
newState | boolean | Enable/disable logging |
Usage​
_26import {emulator, init} from "@onflow/flow-js-testing"_26_26describe("test setup", () => {_26 // Instantiate emulator and path to Cadence files_26 beforeEach(async () => {_26 const basePath = path.resolve(__dirname, "../cadence")_26_26 await init(basePath)_26 await emulator.start()_26 })_26_26 // Stop emulator, so it could be restarted_26 afterEach(async () => {_26 await emulator.stop()_26 })_26_26 test("basic test", async () => {_26 // Turn on logging from begining_26 emulator.setLogging(true)_26 // some asserts and interactions_26_26 // Turn off logging for later calls_26 emulator.setLogging(false)_26 // more asserts and interactions here_26 })_26})