summaryrefslogtreecommitdiff
path: root/node/node_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'node/node_test.go')
-rw-r--r--node/node_test.go48
1 files changed, 47 insertions, 1 deletions
diff --git a/node/node_test.go b/node/node_test.go
index 411bb3360..bfd33a8f0 100644
--- a/node/node_test.go
+++ b/node/node_test.go
@@ -129,10 +129,10 @@ func setupFullNodes(t *testing.T, proto protocol.ConsensusVersion, verificationP
panic(err)
}
part, err := account.FillDBWithParticipationKeys(access, root.Address(), firstRound, lastRound, config.Consensus[protocol.ConsensusCurrentVersion].DefaultKeyDilution)
- access.Close()
if err != nil {
panic(err)
}
+ access.Close()
data := basics.AccountData{
Status: basics.Online,
@@ -507,3 +507,49 @@ func TestMismatchingGenesisDirectoryPermissions(t *testing.T) {
require.NoError(t, os.Chmod(testDirectroy, 1700))
require.NoError(t, os.RemoveAll(testDirectroy))
}
+
+func TestAsyncRecord(t *testing.T) {
+ partitiontest.PartitionTest(t)
+
+ testDirectroy, err := ioutil.TempDir(os.TempDir(), t.Name())
+ require.NoError(t, err)
+
+ genesis := bookkeeping.Genesis{
+ SchemaID: "go-test-node-record-async",
+ Proto: protocol.ConsensusCurrentVersion,
+ Network: config.Devtestnet,
+ FeeSink: sinkAddr.String(),
+ RewardsPool: poolAddr.String(),
+ }
+
+ cfg := config.GetDefaultLocal()
+ cfg.DisableNetworking = true
+ node, err := MakeFull(logging.TestingLog(t), testDirectroy, config.GetDefaultLocal(), []string{}, genesis)
+ require.NoError(t, err)
+ node.Start()
+ defer node.Stop()
+
+ var addr basics.Address
+ addr[0] = 1
+
+ p := account.Participation{
+ Parent: addr,
+ FirstValid: 0,
+ LastValid: 1000000,
+ Voting: &crypto.OneTimeSignatureSecrets{},
+ VRF: &crypto.VRFSecrets{},
+ }
+ id, err := node.accountManager.Registry().Insert(p)
+ require.NoError(t, err)
+ err = node.accountManager.Registry().Register(id, 0)
+ require.NoError(t, err)
+
+ node.Record(addr, 10000, account.Vote)
+ node.Record(addr, 20000, account.BlockProposal)
+
+ time.Sleep(5000 * time.Millisecond)
+ records := node.accountManager.Registry().GetAll()
+ require.Len(t, records, 1)
+ require.Equal(t, 10000, int(records[0].LastVote))
+ require.Equal(t, 20000, int(records[0].LastBlockProposal))
+}