Node
Here we provide full configuration parameters for Node
Here we provide full configuration reference, if you want to copy and run it, please remove all .out fields before!
Configuration
[cl_node]
[cl_node.db]
# PostgreSQL image version and tag
image = "postgres:12.0"
# Pulls the image every time if set to 'true', used like that in CI. Can be set to 'false' to speed up local runs
pull_image = false
[cl_node.node]
# custom ports that plugins may need to expose and map to the host machine
custom_ports = [14000, 14001]
# A list of paths to capability binaries
capabilities = ["./capability_1", "./capability_2"]
# Default capabilities directory inside container
capabilities_container_dir = "/home/capabilities"
# Image to use, you can either provide "image" or "docker_file" + "docker_ctx" fields
image = "public.ecr.aws/chainlink/chainlink:v2.17.0"
# Path to your Chainlink Dockerfile
docker_file = "../../core/chainlink.Dockerfile"
# Path to docker context that should be used to build from
docker_ctx = "../.."
# Optional name for image we build, default is "ctftmp"
docker_image_name = "ctftmp"
# Pulls the image every time if set to 'true', used like that in CI. Can be set to 'false' to speed up local runs
pull_image = false
# Overrides Chainlink node TOML configuration
# can be multiline, see example
user_config_overrides = """
[Log]
level = 'info'
"""
# Overrides Chainlink node secrets TOML configuration
# you can only add fields, overriding existing fields is prohibited by Chainlink node
user_secrets_overrides = """
[AnotherSecret]
mySecret = 'a'
"""
# Outputs are the results of deploying a component that can be used by another component
[cl_node.out]
# If 'use_cache' equals 'true' we skip component setup when we run the test and return the outputs
use_cache = true
# Describes deployed or external Chainlink node
[cl_node.out.node]
# API user name
api_auth_user = 'notreal@fakeemail.ch'
# API password
api_auth_password = 'fj293fbBnlQ!f9vNs'
# Host Docker URLs the test uses
# in case of using external component you can replace these URLs with another deployment
p2p_url = "http://127.0.0.1:32812"
url = "http://127.0.0.1:32847"
# Describes deployed or external Chainlink node
[cl_node.out.postgresql]
# PostgreSQL connection string
# in case of using external database can be overriden
url = "postgresql://chainlink:thispasswordislongenough@127.0.0.1:32846/chainlink?sslmode=disable"
Usage
package yourpackage_test
import (
"fmt"
"github.com/smartcontractkit/chainlink-testing-framework/framework"
"github.com/smartcontractkit/chainlink-testing-framework/framework/components/blockchain"
"github.com/smartcontractkit/chainlink-testing-framework/framework/components/clnode"
"github.com/stretchr/testify/require"
"testing"
)
type Step2Cfg struct {
BlockchainA *blockchain.Input `toml:"blockchain_a" validate:"required"`
CLNode *clnode.Input `toml:"cl_node" validate:"required"`
}
func TestMe(t *testing.T) {
in, err := framework.Load[Step2Cfg](t)
require.NoError(t, err)
bc, err := blockchain.NewBlockchainNetwork(in.BlockchainA)
require.NoError(t, err)
networkCfg, err := clnode.NewNetworkCfgOneNetworkAllNodes(bc)
require.NoError(t, err)
in.CLNode.Node.TestConfigOverrides = networkCfg
output, err := clnode.NewNodeWithDB(in.CLNode)
require.NoError(t, err)
t.Run("test something", func(t *testing.T) {
fmt.Printf("node url: %s\n", output.Node.HostURL)
require.NotEmpty(t, output.Node.HostURL)
})
}