package nkode import ( "github.com/stretchr/testify/assert" m "go-nkode/core/model" "testing" ) func TestNewSqliteDB(t *testing.T) { dbFile := "../../test.db" // sql_driver.MakeTables(dbFile) db := NewSqliteDB(dbFile) defer db.CloseDb() testSignupLoginRenew(t, db) testSqliteDBRandomSvgInterface(t, db) // if _, err := os.Stat(dbFile); err == nil { // err = os.Remove(dbFile) // assert.NoError(t, err) // } else { // assert.NoError(t, err) // } } func testSignupLoginRenew(t *testing.T, db DbAccessor) { nkode_policy := m.NewDefaultNKodePolicy() customerOrig, err := m.NewCustomer(nkode_policy) assert.NoError(t, err) err = db.WriteNewCustomer(*customerOrig) assert.NoError(t, err) customer, err := db.GetCustomer(customerOrig.Id) assert.NoError(t, err) assert.Equal(t, customerOrig, customer) username := m.Username("test_user") kp := m.KeypadDefault passcodeIdx := []int{0, 1, 2, 3} mockSvgInterface := make(m.SvgIdInterface, kp.TotalAttrs()) ui, err := m.NewUserInterface(&kp, mockSvgInterface) assert.NoError(t, err) userOrig, err := NewUser(*customer, username, passcodeIdx, *ui, kp) assert.NoError(t, err) err = db.WriteNewUser(*userOrig) assert.NoError(t, err) user, err := db.GetUser(username, customer.Id) assert.NoError(t, err) assert.Equal(t, userOrig, user) err = db.Renew(customer.Id) assert.NoError(t, err) } func testSqliteDBRandomSvgInterface(t *testing.T, db DbAccessor) { kp := m.KeypadMax svgs, err := db.RandomSvgInterface(kp) assert.NoError(t, err) assert.Len(t, svgs, kp.TotalAttrs()) }