package db_test import ( "testing" "time" "tipitypy/db" "gorm.io/driver/sqlite" "gorm.io/gorm" ) // Setup a test database func setupDB() (*gorm.DB, error) { dbc, err := gorm.Open(sqlite.Open(":memory:"), &gorm.Config{}) if err != nil { return nil, err } dbc.AutoMigrate(&db.Stat{}) return dbc, nil } func TestTypingSession(t *testing.T) { dbc, err := setupDB() if err != nil { t.Fatalf("failed to connect to test database: %v", err) } // Insert a record expectedDuration := 5 * time.Second session := db.Stat{ TimeTaken: expectedDuration.Milliseconds(), } if err := dbc.Create(&session).Error; err != nil { t.Fatalf("failed to insert session: %v", err) } // Retrieve the record var retrieved db.Stat if err := dbc.First(&retrieved, session.ID).Error; err != nil { t.Fatalf("failed to retrieve session: %v", err) } // Compare values if retrieved.TimeTaken != expectedDuration.Milliseconds() { t.Errorf("expected %d ms, got %d ms", expectedDuration.Milliseconds(), retrieved.TimeTaken) } }