@@ -4,15 +4,19 @@ import (
44 "testing"
55 "time"
66
7+ "github.com/stretchr/testify/mock"
78 "github.com/stretchr/testify/require"
89 "google.golang.org/protobuf/proto"
910
11+ "github.com/smartcontractkit/chainlink-common/keystore/corekeys/csakey"
1012 "github.com/smartcontractkit/chainlink-common/pkg/beholder"
1113 "github.com/smartcontractkit/chainlink-common/pkg/beholder/beholdertest"
1214 "github.com/smartcontractkit/chainlink-common/pkg/services/servicetest"
1315 commonv1 "github.com/smartcontractkit/chainlink-protos/node-platform/common/v1"
16+ "github.com/smartcontractkit/chainlink/v2/core/internal/cltest"
1417 "github.com/smartcontractkit/chainlink/v2/core/logger"
1518 "github.com/smartcontractkit/chainlink/v2/core/services/chainlink"
19+ keystoremocks "github.com/smartcontractkit/chainlink/v2/core/services/keystore/mocks"
1620)
1721
1822func TestNodePlatformBuildInfo_EmitsNodeBuildInfo (t * testing.T ) {
@@ -47,3 +51,30 @@ func TestNodePlatformBuildInfo_EmitsNodeBuildInfo(t *testing.T) {
4751 require .Equal (t , "version-tag" , payload .VersionTag )
4852 require .Equal (t , "1.2.3" , payload .Version )
4953}
54+
55+ func TestNodePlatformBuildInfo_ResolvesCSAKeyOnStart (t * testing.T ) {
56+ obs := beholdertest .NewObserver (t )
57+ csaStore := & keystoremocks.CSA {}
58+
59+ csaStore .EXPECT ().EnsureKey (mock .Anything ).Return (nil ).Once ()
60+ csaStore .EXPECT ().GetAll ().Return ([]csakey.KeyV2 {cltest .DefaultCSAKey }, nil ).Once ()
61+
62+ servicetest .Run (t , chainlink .NewNodePlatformBuildInfoService (chainlink.NodePlatformBuildInfoConfig {
63+ Beat : 10 * time .Millisecond ,
64+ Lggr : logger .TestLogger (t ),
65+ CSAKeyStore : csaStore ,
66+ CommitSHA : "commit-sha" ,
67+ DockerTag : "docker-tag" ,
68+ VersionTag : "version-tag" ,
69+ Version : "1.2.3" ,
70+ }))
71+
72+ require .Eventually (t , func () bool {
73+ return obs .Len (t , beholder .AttrKeyEntity , "common.v1.NodeBuildInfo" ) > 0
74+ }, time .Second , 10 * time .Millisecond )
75+
76+ msg := obs .Messages (t , beholder .AttrKeyEntity , "common.v1.NodeBuildInfo" )[0 ]
77+ var payload commonv1.NodeBuildInfo
78+ require .NoError (t , proto .Unmarshal (msg .Body , & payload ))
79+ require .Equal (t , cltest .DefaultCSAKey .PublicKeyString (), payload .CsaPublicKey )
80+ }
0 commit comments