Files
node/internal/database/factory/comprehensive_metrics_test.go
zeekay 7cf87b230b node-unified is the node
The module already called itself github.com/luxfi/node while containing no node
in Go: cmd/luxd was twenty-one lines that printed the size of a few types, and
the Go column of the matrix measured a VM plugin. A repo that fetches the thing
it claims to be has not replaced it, so the Go sources move in — 1515 files,
the daemon and everything under it — and the build reaches outside this module
for nothing.

Rust and C++ sit beside it unchanged and are still measured against it by the
differential. That is the point of one repo: the reference implementation and
the two ports are the same checkout, so parity is a thing you can run rather
than a thing you assert.

Verified: builds, and the closure carries no lux-private — checked at build time
rather than believed. The daemon starts twelve chains on a local network
(P X C Q Z A B G K M F, plus D through its plugin) and reports healthy.
2026-09-07 16:15:25 -07:00

56 lines
1.2 KiB
Go

// Copyright (C) 2019-2025, Lux Industries Inc. All rights reserved.
// See the file LICENSE for licensing terms.
package factory
import (
"os"
"path/filepath"
"testing"
"github.com/luxfi/database/zapdb"
"github.com/luxfi/log"
"github.com/luxfi/node/service/metrics"
"github.com/stretchr/testify/require"
)
// TestDatabaseWithMetricsCreation verifies that the database factory
// creates a database with metrics enabled without error.
func TestDatabaseWithMetricsCreation(t *testing.T) {
require := require.New(t)
tmpDir, err := os.MkdirTemp("", "metrics_creation_test")
require.NoError(err)
defer os.RemoveAll(tmpDir)
dbPath := filepath.Join(tmpDir, "db")
logger := log.NoLog{}
gatherer := metrics.NewMultiGatherer()
require.NotNil(gatherer, "Gatherer should not be nil")
db, err := New(
zapdb.Name,
dbPath,
false,
nil,
gatherer,
logger,
"test_db",
"test_meterdb",
)
require.NoError(err, "Database creation should succeed")
require.NotNil(db, "Database should not be nil")
defer db.Close()
// Verify database operations work
testKey := []byte("test_key")
testValue := []byte("test_value")
require.NoError(db.Put(testKey, testValue))
value, err := db.Get(testKey)
require.NoError(err)
require.Equal(testValue, value)
}