ingester_test.gno

1.20 Kb ยท 36 lines
 1package single_test
 2
 3import (
 4	"testing"
 5
 6	"gno.land/p/demo/gnorkle/ingester"
 7	"gno.land/p/demo/gnorkle/ingesters/single"
 8	"gno.land/p/demo/gnorkle/storage/simple"
 9	"gno.land/p/demo/uassert"
10)
11
12func TestValueIngester(t *testing.T) {
13	storage := simple.NewStorage(1)
14
15	var undefinedIngester *single.ValueIngester
16	_, err := undefinedIngester.Ingest("asdf", "gno11111")
17	uassert.ErrorIs(t, err, ingester.ErrUndefined, "undefined ingester call to Ingest should return ingester.ErrUndefined")
18
19	err = undefinedIngester.CommitValue(storage, "gno11111")
20	uassert.ErrorIs(t, err, ingester.ErrUndefined, "undefined ingester call to CommitValue should return ingester.ErrUndefined")
21
22	var valueIngester single.ValueIngester
23	typ := valueIngester.Type()
24	uassert.Equal(t, int(ingester.TypeSingle), int(typ), "single value ingester should return type ingester.TypeSingle")
25
26	ingestValue := "value"
27	autocommit, err := valueIngester.Ingest(ingestValue, "gno11111")
28	uassert.True(t, autocommit, "single value ingester should return autocommit true")
29	uassert.NoError(t, err)
30
31	err = valueIngester.CommitValue(storage, "gno11111")
32	uassert.NoError(t, err)
33
34	latestValue := storage.GetLatest()
35	uassert.Equal(t, ingestValue, latestValue.String)
36}