diff --git a/services/main_test.go b/services/main_test.go new file mode 100644 index 0000000..8d0fe8c --- /dev/null +++ b/services/main_test.go @@ -0,0 +1,40 @@ +package services + +import ( + "fmt" + "os" + "testing" + + "github.com/musgit-dev/musgit/internal/adapters/db" + "github.com/musgit-dev/musgit/models" +) + +var pieceService *PieceService + +func TestMain(m *testing.M) { + dbPort, err := db.NewAdapter(":memory:") + if err != nil { + os.Exit(1) + } + lessonService := NewLessonService(dbPort) + pieceService = NewPieceService(dbPort) + practiceService = NewPracticeService(dbPort) + userService = NewUserService(dbPort) + piece, err := pieceService.Add( + "test_piece", + "test_composer", + models.PieceComplexityEasy, + ) + if err != nil { + os.Exit(1) + } + fmt.Printf("Added piece %d\n", piece.ID) + lesson, err := lessonService.Start() + if err != nil { + os.Exit(1) + } + fmt.Printf("Started lesson %d\n", lesson.ID) + + exitVal := m.Run() + os.Exit(exitVal) +} diff --git a/services/practice_test.go b/services/practice_test.go index 0febb47..06ad2db 100644 --- a/services/practice_test.go +++ b/services/practice_test.go @@ -1,45 +1,15 @@ package services import ( - "fmt" - "os" "testing" - "github.com/musgit-dev/musgit/internal/adapters/db" "github.com/musgit-dev/musgit/models" ) -var service *PracticeService - -func TestMain(m *testing.M) { - dbPort, err := db.NewAdapter(":memory:") - if err != nil { - os.Exit(1) - } - pieceService := NewPieceService(dbPort) - lessonService := NewLessonService(dbPort) - service = NewPracticeService(dbPort) - piece, err := pieceService.Add( - "test_piece", - "test_composer", - models.PieceComplexityEasy, - ) - if err != nil { - os.Exit(1) - } - fmt.Printf("Added piece %d\n", piece.ID) - lesson, err := lessonService.Start() - if err != nil { - os.Exit(1) - } - fmt.Printf("Started lesson %d\n", lesson.ID) - - exitVal := m.Run() - os.Exit(exitVal) -} +var practiceService *PracticeService func TestStart(t *testing.T) { - practice, err := service.Start(1, 1) + practice, err := practiceService.Start(1, 1) if err != nil { t.Fatal("Failed to start practice", err) } @@ -50,19 +20,19 @@ func TestStart(t *testing.T) { t.Fatalf("Incorrect lesson id, got %d", lessonId) } - _, err = service.Start(1, 2) + _, err = practiceService.Start(1, 2) if err != models.ErrNotActiveLesson { t.Fatalf("Expected error %s, got %s", models.ErrNotActiveLesson, err) } - _, err = service.Start(1, 0) + _, err = practiceService.Start(1, 0) if err == models.ErrNotActiveLesson { t.Fatalf("Unexpected error %s", err) } } func TestStop(t *testing.T) { - service.Start(1, 0) - practice, err := service.Stop(1) + practiceService.Start(1, 0) + practice, err := practiceService.Stop(1) if err != nil { t.Fatalf("Unexpected error %s", err) } @@ -74,14 +44,14 @@ func TestStop(t *testing.T) { practice.Progress, ) } - // _, err = service.Stop(1) + // _, err = practiceService.Stop(1) // if err != models.ErrCompletedPractice { // t.Fatal(err) // } } func TestStartWarmup(t *testing.T) { - warmup, err := service.Warmup(1) + warmup, err := practiceService.Warmup(1) if err != nil { t.Fatal("Unknown error", err) } @@ -89,12 +59,12 @@ func TestStartWarmup(t *testing.T) { if warmup.State != models.WarmupActive { t.Fatal("Warmup should be active, got", warmup.State) } - // warmup, err = service.Warmup(1) + // warmup, err = practiceService.Warmup(1) // if err != models.ErrWarmapStarted { // t.Fatalf("Expected error %s, got %s", models.ErrWarmapStarted, err) // } - warmup, err = service.StopWarmup() + warmup, err = practiceService.StopWarmup() if err != nil { t.Fatal("Unknown error", err) } diff --git a/services/user.go b/services/user.go index 6c8ebcb..357e964 100644 --- a/services/user.go +++ b/services/user.go @@ -63,7 +63,7 @@ func (s *UserService) StartPractice( } piece, err := s.db.GetPiece(pieceId) lesson, err := s.db.GetLesson(lessonId) - practice, err = piece.StartPractice() + practice, err = piece.StartPractice(lessonId) user.PracticePiece(practice, &lesson) return practice, err } diff --git a/services/user_test.go b/services/user_test.go index 82ea459..b5a45aa 100644 --- a/services/user_test.go +++ b/services/user_test.go @@ -1,40 +1,13 @@ package services import ( - "fmt" - "os" "testing" - - "github.com/musgit-dev/musgit/internal/adapters/db" - "github.com/musgit-dev/musgit/models" ) -var service *UserService -var pieceService *PieceService - -func TestMain(m *testing.M) { - dbPort, err := db.NewAdapter(":memory:") - if err != nil { - os.Exit(1) - } - pieceService = NewPieceService(dbPort) - - piece, err := pieceService.Add( - "test_piece", - "test_composer", - models.PieceComplexityUnknown, - ) - if err != nil { - os.Exit(1) - } - fmt.Println("Added piece", piece.ID) - service = NewUserService(dbPort) - exitVal := m.Run() - os.Exit(exitVal) -} +var userService *UserService func TestAdd(t *testing.T) { - user, err := service.Add("test_user") + user, err := userService.Add("test_user") if err != nil { t.Fatal(err) } @@ -44,7 +17,7 @@ func TestAdd(t *testing.T) { } func TestAssignPiece(t *testing.T) { - user, err := service.Add("test_user") + user, err := userService.Add("test_user") if err != nil { t.Fatal(err) }