Start writing tests
This commit is contained in:
@ -45,6 +45,24 @@ func NewStore(filename string, genString GenString) (*Store, error) {
|
||||
return store, nil
|
||||
}
|
||||
|
||||
func NewMemoryStore(genString GenString) (*Store, error) {
|
||||
pool, err := sqlitex.Open("file::memory:?mode=memory&cache=shared", 0, 10)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
store := &Store{
|
||||
pool: pool,
|
||||
genString: genString,
|
||||
}
|
||||
log.Println("creating schema")
|
||||
err = store.createSchema()
|
||||
if err != nil {
|
||||
defer pool.Close()
|
||||
return nil, err
|
||||
}
|
||||
return store, nil
|
||||
}
|
||||
|
||||
func (s *Store) Close() error {
|
||||
return s.pool.Close()
|
||||
}
|
||||
|
46
back/store_test.go
Normal file
46
back/store_test.go
Normal file
@ -0,0 +1,46 @@
|
||||
package back_test
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/matryer/is"
|
||||
"gitlab.codemonkeysoftware.net/b/henwen/back"
|
||||
)
|
||||
|
||||
func TestNewMemoryStore(t *testing.T) {
|
||||
is := is.New(t)
|
||||
store, err := back.NewMemoryStore(back.SecureGenString)
|
||||
is.NoErr(err)
|
||||
is.True(store != nil)
|
||||
store.Close()
|
||||
}
|
||||
|
||||
func TestCreateEvent(t *testing.T) {
|
||||
is := is.New(t)
|
||||
store, err := back.NewMemoryStore(back.SecureGenString)
|
||||
is.NoErr(err)
|
||||
defer store.Close()
|
||||
|
||||
earliest := time.Date(2020, 04, 05, 0, 0, 0, 0, time.UTC)
|
||||
latest := time.Date(2020, 04, 05, 0, 0, 0, 0, time.UTC)
|
||||
const name = "abc"
|
||||
const description = "def"
|
||||
createResult, err := store.CreateEvent(context.Background(), back.CreateEventCommand{
|
||||
Name: name,
|
||||
Description: description,
|
||||
EarliestDate: earliest,
|
||||
LatestDate: latest,
|
||||
})
|
||||
is.NoErr(err)
|
||||
|
||||
metadataResult, err := store.GetEventMetadata(context.Background(), back.GetEventMetadataQuery{
|
||||
AlphaID: createResult.AlphaID,
|
||||
})
|
||||
is.NoErr(err)
|
||||
is.Equal(metadataResult.Name, name)
|
||||
is.Equal(metadataResult.Description, description)
|
||||
is.True(metadataResult.EarliestDate.Equal(earliest))
|
||||
is.True(metadataResult.LatestDate.Equal(latest))
|
||||
}
|
Reference in New Issue
Block a user