mirror of
https://github.com/nbd-wtf/go-nostr.git
synced 2025-07-04 04:25:06 +02:00
add more ParseMessage tests.
This commit is contained in:
@ -1,6 +1,8 @@
|
|||||||
package nostr
|
package nostr
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bufio"
|
||||||
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/minio/simdjson-go"
|
"github.com/minio/simdjson-go"
|
||||||
@ -169,3 +171,40 @@ func TestParseMessage(t *testing.T) {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestParseMessagesFromFile(t *testing.T) {
|
||||||
|
file, err := os.Open("testdata/messages.jsonl")
|
||||||
|
if err != nil {
|
||||||
|
t.Skipf("Skipping test because testdata/messages.jsonl could not be opened: %v", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
defer file.Close()
|
||||||
|
|
||||||
|
scanner := bufio.NewScanner(file)
|
||||||
|
smp := NewSonicMessageParser()
|
||||||
|
lineNum := 0
|
||||||
|
|
||||||
|
for scanner.Scan() {
|
||||||
|
lineNum++
|
||||||
|
line := scanner.Bytes()
|
||||||
|
if len(line) == 0 {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
standardEnvelope := ParseMessage(line)
|
||||||
|
sonicEnvelope, err := smp.ParseMessage(line)
|
||||||
|
|
||||||
|
if standardEnvelope == nil {
|
||||||
|
require.Nil(t, sonicEnvelope, "line %d: standard parser returned nil but sonic parser didn't", lineNum)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
require.NoError(t, err, "line %d: sonic parser returned error", lineNum)
|
||||||
|
require.NotNil(t, sonicEnvelope, "line %d: standard parser returned non-nil but sonic parser returned nil", lineNum)
|
||||||
|
|
||||||
|
require.Equal(t, standardEnvelope, sonicEnvelope,
|
||||||
|
"line %d: parsers returned different results", lineNum)
|
||||||
|
}
|
||||||
|
|
||||||
|
require.NoError(t, scanner.Err(), "error reading file")
|
||||||
|
}
|
||||||
|
File diff suppressed because one or more lines are too long
538
testdata/messages.jsonl
vendored
Normal file
538
testdata/messages.jsonl
vendored
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user