mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2024-12-22 03:30:35 +00:00
62 lines
1.8 KiB
Go
62 lines
1.8 KiB
Go
|
package config
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
"net/http"
|
||
|
"net/http/httptest"
|
||
|
"os"
|
||
|
"strings"
|
||
|
"testing"
|
||
|
|
||
|
"github.com/prysmaticlabs/prysm/v5/config/params"
|
||
|
"github.com/prysmaticlabs/prysm/v5/testing/assert"
|
||
|
"github.com/prysmaticlabs/prysm/v5/testing/require"
|
||
|
"github.com/sirupsen/logrus/hooks/test"
|
||
|
)
|
||
|
|
||
|
func TestUnmarshalFromURL_Success(t *testing.T) {
|
||
|
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||
|
w.WriteHeader(http.StatusOK)
|
||
|
_, err := w.Write([]byte(`{"key":"value"}`))
|
||
|
require.NoError(t, err)
|
||
|
}))
|
||
|
defer server.Close()
|
||
|
|
||
|
var result map[string]string
|
||
|
err := UnmarshalFromURL(context.Background(), server.URL, &result)
|
||
|
if err != nil {
|
||
|
t.Errorf("UnmarshalFromURL failed: %v", err)
|
||
|
}
|
||
|
if result["key"] != "value" {
|
||
|
t.Errorf("Expected value to be 'value', got '%s'", result["key"])
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestUnmarshalFromFile_Success(t *testing.T) {
|
||
|
// Temporarily create a YAML file
|
||
|
tmpFile, err := os.CreateTemp(t.TempDir(), "example.*.yaml")
|
||
|
require.NoError(t, err)
|
||
|
defer require.NoError(t, os.Remove(tmpFile.Name())) // Clean up
|
||
|
|
||
|
content := []byte("key: value")
|
||
|
|
||
|
require.NoError(t, os.WriteFile(tmpFile.Name(), content, params.BeaconIoConfig().ReadWritePermissions))
|
||
|
require.NoError(t, tmpFile.Close())
|
||
|
|
||
|
var result map[string]string
|
||
|
require.NoError(t, UnmarshalFromFile(tmpFile.Name(), &result))
|
||
|
require.Equal(t, result["key"], "value")
|
||
|
}
|
||
|
|
||
|
func TestWarnNonChecksummedAddress(t *testing.T) {
|
||
|
logHook := test.NewGlobal()
|
||
|
address := "0x967646dCD8d34F4E02204faeDcbAe0cC96fB9245"
|
||
|
err := WarnNonChecksummedAddress(address)
|
||
|
require.NoError(t, err)
|
||
|
assert.LogsDoNotContain(t, logHook, "is not a checksum Ethereum address")
|
||
|
address = strings.ToLower("0x967646dCD8d34F4E02204faeDcbAe0cC96fB9244")
|
||
|
err = WarnNonChecksummedAddress(address)
|
||
|
require.NoError(t, err)
|
||
|
assert.LogsContain(t, logHook, "is not a checksum Ethereum address")
|
||
|
}
|