mirror of
https://github.com/OffchainLabs/prysm.git
synced 2026-01-08 23:18:15 -05:00
* Add basic PathElement * Add ssz_type.go * Add basic sszInfo * Add containerInfo * Add basic analyzer without analyzing list/vector * Add analyzer for homogeneous collection types * Add offset/length calculator * Add testutil package in encoding/ssz/query * Add first round trip test for IndexedAttestationElectra * Go mod tidy * Add Print function for debugging purpose * Add changelog * Add testonly flag for testutil package & Nit for nogo * Apply reviews from Radek * Replace fastssz with prysmaticlabs one * Add proto/ssz_query package for testing purpose * Update encoding/ssz/query tests to decouple with beacon types * Use require.* instead of assert.* * Fix import name for proto ssz_query package * Remove uint8/uint16 and some byte arrays in FixedTestContainer * Add newline for files * Fix comment about byte array in ssz_query.proto --------- Co-authored-by: Radosław Kapka <rkapka@wp.pl>
54 lines
1.1 KiB
Go
54 lines
1.1 KiB
Go
package query_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/OffchainLabs/prysm/v6/encoding/ssz/query"
|
|
"github.com/OffchainLabs/prysm/v6/testing/require"
|
|
)
|
|
|
|
func TestParsePath(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
path string
|
|
expected []query.PathElement
|
|
wantErr bool
|
|
}{
|
|
{
|
|
name: "simple nested path",
|
|
path: "data.target.root",
|
|
expected: []query.PathElement{
|
|
{Name: "data"},
|
|
{Name: "target"},
|
|
{Name: "root"},
|
|
},
|
|
wantErr: false,
|
|
},
|
|
{
|
|
name: "simple nested path with leading dot",
|
|
path: ".data.target.root",
|
|
expected: []query.PathElement{
|
|
{Name: "data"},
|
|
{Name: "target"},
|
|
{Name: "root"},
|
|
},
|
|
wantErr: false,
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
parsedPath, err := query.ParsePath(tt.path)
|
|
|
|
if tt.wantErr {
|
|
require.NotNil(t, err, "Expected error but got none")
|
|
return
|
|
}
|
|
|
|
require.NoError(t, err)
|
|
require.Equal(t, len(tt.expected), len(parsedPath), "Expected %d path elements, got %d", len(tt.expected), len(parsedPath))
|
|
require.DeepEqual(t, tt.expected, parsedPath, "Parsed path does not match expected path")
|
|
})
|
|
}
|
|
}
|