package repository_test import ( // Context imported for interface matching but not used "context" "fmt" "git.hrafn.xyz/aether/notes/internal/models" ) type mockNoteStore struct { Notes []models.Note } func (m *mockNoteStore) SaveNote(ctx context.Context, note models.Note) (models.Note, error) { // Save a note if note.ID == 0 { note.ID = len(m.Notes) + 1 m.Notes = append(m.Notes, note) return note, nil } // Update a note _, index, err := m.getNoteAndIndexByID(note.ID) if err != nil { return models.Note{}, err } m.Notes[index] = note return note, nil } func (m *mockNoteStore) GetNoteByID(ctx context.Context, id int) (models.Note, error) { note, _, err := m.getNoteAndIndexByID(id) if err != nil { return models.Note{}, err } return note, nil } func (m *mockNoteStore) getNoteAndIndexByID(id int) (models.Note, int, error) { for i, note := range m.Notes { if note.ID == id { return note, i, nil } } return models.Note{}, -1, fmt.Errorf("note with ID %d not found", id) } func (m *mockNoteStore) GetAllNotes(ctx context.Context) ([]models.Note, error) { return m.Notes, nil } func (m *mockNoteStore) DeleteNoteByID(ctx context.Context, id int) error { _, index, err := m.getNoteAndIndexByID(id) if err != nil { return err } m.Notes = append(m.Notes[:index], m.Notes[index+1:]...) return nil }