go-blockchain/consensus/integration_test.go
Claude 153fc6a3e0
docs: Phase 7 consensus rules complete
Add integration test, update architecture docs with consensus/ package
description, record Phase 7 in project history.

Co-Authored-By: Charon <charon@lethean.io>
2026-02-21 01:14:41 +00:00

49 lines
1,022 B
Go

// Copyright (c) 2017-2026 Lethean (https://lt.hn)
//
// Licensed under the European Union Public Licence (EUPL) version 1.2.
// SPDX-License-Identifier: EUPL-1.2
//go:build integration
package consensus
import (
"testing"
store "forge.lthn.ai/core/go-store"
"forge.lthn.ai/core/go-blockchain/chain"
"forge.lthn.ai/core/go-blockchain/config"
"forge.lthn.ai/core/go-blockchain/rpc"
)
func TestConsensusIntegration(t *testing.T) {
client := rpc.NewClient("http://localhost:46941")
s, err := store.New(":memory:")
if err != nil {
t.Fatal(err)
}
defer s.Close()
c := chain.New(s)
// Sync with consensus validation using testnet fork schedule.
opts := chain.SyncOptions{
Forks: config.TestnetForks,
}
if err := c.Sync(client, opts); err != nil {
t.Fatalf("sync with consensus validation: %v", err)
}
height, err := c.Height()
if err != nil {
t.Fatal(err)
}
t.Logf("Synced %d blocks with consensus validation", height)
if height == 0 {
t.Fatal("expected at least 1 block synced")
}
}