github.com/gocaveman/caveman@v0.0.0-20191211162744-0ddf99dbdf6e/regions/regionsdb/regionsdb_test.go (about)

     1  package regionsdb
     2  
     3  import (
     4  	"log"
     5  	"testing"
     6  
     7  	"github.com/gocaveman/caveman/filesystem/aferofs"
     8  	"github.com/gocaveman/caveman/migrate"
     9  	"github.com/gocaveman/caveman/migrate/migratedbr"
    10  	"github.com/gocaveman/caveman/regions"
    11  	"github.com/spf13/afero"
    12  	"github.com/stretchr/testify/assert"
    13  
    14  	_ "github.com/mattn/go-sqlite3"
    15  )
    16  
    17  func TestDBStore(t *testing.T) {
    18  
    19  	assert := assert.New(t)
    20  
    21  	fs := afero.NewMemMapFs()
    22  	fs.MkdirAll("/tmp", 0755)
    23  
    24  	driver, dsn := "sqlite3", "file:TestDBStore?mode=memory&cache=shared"
    25  
    26  	dbStore := &DBStore{
    27  		DBDriver:       driver,
    28  		DBDSN:          dsn,
    29  		FileSystem:     aferofs.New(fs),
    30  		FilePathPrefix: "/tmp",
    31  	}
    32  	assert.NoError(dbStore.AfterWire())
    33  
    34  	ver, err := migratedbr.New(driver, dsn)
    35  	assert.NoError(err)
    36  	runner := migrate.NewRunner(driver, dsn, ver, DefaultRegionsMigrations)
    37  	assert.NoError(runner.RunAllUpToLatest())
    38  
    39  	assert.NoError(dbStore.WriteDefinition(regions.Definition{
    40  		DefinitionID: "def1",
    41  		RegionName:   "leftnav+",
    42  		TemplateName: "/example1.gohtml",
    43  	}))
    44  
    45  	b, err := afero.ReadFile(fs, "/tmp/regions.yaml")
    46  	assert.NoError(err)
    47  
    48  	log.Printf("regions: %s", b)
    49  
    50  }