Files
opentimestamps/remote_calendar_test.go
2023-09-18 16:31:05 -03:00

72 lines
1.6 KiB
Go

package opentimestamps
import (
"crypto/sha256"
"fmt"
"os"
"testing"
"time"
"github.com/sirupsen/logrus"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
const (
calendarServerEnvvar = "GOTS_TEST_CALENDAR_SERVER"
bitcoinRegtestEnvvar = "GOTS_TEST_BITCOIN_REGTEST_SERVER"
)
func newTestCalendar(url string) *RemoteCalendar {
logrus.SetLevel(logrus.DebugLevel)
cal, err := NewRemoteCalendar(url)
if err != nil {
panic("could not create test calendar")
}
cal.log.Level = logrus.DebugLevel
return cal
}
func newTestDigest(in string) []byte {
hash := sha256.Sum256([]byte(in))
return hash[:]
}
func TestRemoteCalendarExample(t *testing.T) {
dts, err := NewDetachedTimestampFromPath(
"./examples/two-calendars.txt.ots",
)
require.NoError(t, err)
pts := PendingTimestamps(dts.Timestamp)
assert.Equal(t, 2, len(pts))
for _, pt := range pts {
ts, err := pt.Upgrade()
assert.NoError(t, err)
fmt.Print(ts.Dump())
}
}
func TestRemoteCalendarRoundTrip(t *testing.T) {
calendarServer := os.Getenv(calendarServerEnvvar)
if calendarServer == "" {
t.Skipf("%q not set, skipping test", calendarServerEnvvar)
}
cal := newTestCalendar(calendarServer)
ts, err := cal.Submit(newTestDigest("Hello, World!"))
require.NoError(t, err)
require.NotNil(t, ts)
// TODO call rpcclient generateblock 100
// FIXME possible opentimestamps-server bug?
// wait until attestation has been aggregated
time.Sleep(2 * time.Second)
for _, pts := range PendingTimestamps(ts) {
ts, err := pts.Upgrade()
assert.NoError(t, err)
_ = ts
}
}