Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Qodo Cover Update: 1737649067 #49

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions templated_tests/go/taskmgr/internal/cli/parser_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,14 @@ func TestParseArgs(t *testing.T) {
t.Errorf("Expected args ['MyTask'], got %v", rest)
}
}

func TestParseArgsEmptyInput(t *testing.T) {
cmd, rest := ParseArgs([]string{})
if cmd != "" {
t.Errorf("Expected cmd '', got '%s'", cmd)
}
if rest != nil {
t.Errorf("Expected args nil, got %v", rest)
}
}

88 changes: 88 additions & 0 deletions templated_tests/go/taskmgr/internal/tasks/store_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,3 +58,91 @@ func TestFileStore(t *testing.T) {
t.Errorf("Expected persisted 'Updated' task, got %v", list)
}
}

func TestRemoveLoadTasksError(t *testing.T) {
dir, err := ioutil.TempDir("", "taskmgr_test")
if err != nil {
t.Fatalf("Failed to create temp dir: %v", err)
}
defer os.RemoveAll(dir)

testFile := filepath.Join(dir, "tasks.json")
store := NewFileStore(testFile)

// Create a file with invalid JSON to simulate load error
if err := ioutil.WriteFile(testFile, []byte("{invalid json"), 0644); err != nil {
t.Fatalf("Failed to write invalid JSON: %v", err)
}

err = store.Remove(0)
if err == nil {
t.Error("Expected error when removing task with invalid JSON file, got nil")
}
}


func TestUpdateLoadTasksError(t *testing.T) {
dir, err := ioutil.TempDir("", "taskmgr_test")
if err != nil {
t.Fatalf("Failed to create temp dir: %v", err)
}
defer os.RemoveAll(dir)

testFile := filepath.Join(dir, "tasks.json")
store := NewFileStore(testFile)

// Create a file with invalid JSON to simulate load error
if err := ioutil.WriteFile(testFile, []byte("{invalid json"), 0644); err != nil {
t.Fatalf("Failed to write invalid JSON: %v", err)
}

err = store.Update(0, Task{Title: "Updated"})
if err == nil {
t.Error("Expected error when updating task with invalid JSON file, got nil")
}
}


func TestListLoadTasksError(t *testing.T) {
dir, err := ioutil.TempDir("", "taskmgr_test")
if err != nil {
t.Fatalf("Failed to create temp dir: %v", err)
}
defer os.RemoveAll(dir)

testFile := filepath.Join(dir, "tasks.json")
store := NewFileStore(testFile)

// Create a file with invalid JSON to simulate load error
if err := ioutil.WriteFile(testFile, []byte("{invalid json"), 0644); err != nil {
t.Fatalf("Failed to write invalid JSON: %v", err)
}

list := store.List()
if len(list) != 0 {
t.Errorf("Expected empty list on load error, got %d tasks", len(list))
}
}


func TestAddLoadTasksError(t *testing.T) {
dir, err := ioutil.TempDir("", "taskmgr_test")
if err != nil {
t.Fatalf("Failed to create temp dir: %v", err)
}
defer os.RemoveAll(dir)

testFile := filepath.Join(dir, "tasks.json")
store := NewFileStore(testFile)

// Create a file with invalid JSON to simulate load error
if err := ioutil.WriteFile(testFile, []byte("{invalid json"), 0644); err != nil {
t.Fatalf("Failed to write invalid JSON: %v", err)
}

err = store.Add(Task{Title: "Example"})
if err == nil {
t.Error("Expected error when adding task with invalid JSON file, got nil")
}
}

265 changes: 265 additions & 0 deletions templated_tests/go/taskmgr/internal/tasks/tasks_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,268 @@ func TestTaskManager(t *testing.T) {
t.Errorf("Expected persisted task 'First' to be done, got %v", newList)
}
}

func TestUndoDoneOutOfRange(t *testing.T) {
dir, err := ioutil.TempDir("", "taskmgr_tasks_test")
if err != nil {
t.Fatalf("Failed to create temp dir: %v", err)
}
defer os.RemoveAll(dir)

store := NewFileStore(filepath.Join(dir, "tasks.json"))
manager := NewTaskManager(store)

err = manager.Add(Task{Title: "Task 1", Done: true})
if err != nil {
t.Fatal("Error adding task:", err)
}

err = manager.UndoDone("1")
if err == nil || err.Error() != "invalid index" {
t.Errorf("Expected 'invalid index' error, got %v", err)
}
}


func TestMarkAllDone(t *testing.T) {
dir, err := ioutil.TempDir("", "taskmgr_tasks_test")
if err != nil {
t.Fatalf("Failed to create temp dir: %v", err)
}
defer os.RemoveAll(dir)

store := NewFileStore(filepath.Join(dir, "tasks.json"))
manager := NewTaskManager(store)

tasks := []Task{
{Title: "Task 1", Done: false},
{Title: "Task 2", Done: false},
}

err = manager.BulkAdd(tasks)
if err != nil {
t.Fatal("Error adding tasks:", err)
}

err = manager.MarkAllDone()
if err != nil {
t.Errorf("Expected no error, got %v", err)
}

list := manager.List()
for _, task := range list {
if !task.Done {
t.Error("Expected all tasks to be marked done")
}
}
}


func TestRemoveOutOfRange(t *testing.T) {
dir, err := ioutil.TempDir("", "taskmgr_tasks_test")
if err != nil {
t.Fatalf("Failed to create temp dir: %v", err)
}
defer os.RemoveAll(dir)

store := NewFileStore(filepath.Join(dir, "tasks.json"))
manager := NewTaskManager(store)

err = manager.Add(Task{Title: "Task 1"})
if err != nil {
t.Fatal("Error adding task:", err)
}

err = manager.Remove("1")
if err == nil || err.Error() != "invalid index" {
t.Errorf("Expected 'invalid index' error, got %v", err)
}
}


func TestMarkDoneOutOfRange(t *testing.T) {
dir, err := ioutil.TempDir("", "taskmgr_tasks_test")
if err != nil {
t.Fatalf("Failed to create temp dir: %v", err)
}
defer os.RemoveAll(dir)

store := NewFileStore(filepath.Join(dir, "tasks.json"))
manager := NewTaskManager(store)

err = manager.Add(Task{Title: "Task 1"})
if err != nil {
t.Fatal("Error adding task:", err)
}

err = manager.MarkDone("1")
if err == nil || err.Error() != "invalid index" {
t.Errorf("Expected 'invalid index' error, got %v", err)
}
}


func TestFindByDescription(t *testing.T) {
dir, err := ioutil.TempDir("", "taskmgr_tasks_test")
if err != nil {
t.Fatalf("Failed to create temp dir: %v", err)
}
defer os.RemoveAll(dir)

store := NewFileStore(filepath.Join(dir, "tasks.json"))
manager := NewTaskManager(store)

manager.Add(Task{Title: "Task 1", Description: "Common Description"})
manager.Add(Task{Title: "Task 2", Description: "Common Description"})

tasks := manager.FindByDescription("Common Description")
if len(tasks) != 2 {
t.Errorf("Expected to find 2 tasks, got %d", len(tasks))
}
}


func TestFindByTitle(t *testing.T) {
dir, err := ioutil.TempDir("", "taskmgr_tasks_test")
if err != nil {
t.Fatalf("Failed to create temp dir: %v", err)
}
defer os.RemoveAll(dir)

store := NewFileStore(filepath.Join(dir, "tasks.json"))
manager := NewTaskManager(store)

manager.Add(Task{Title: "Unique Title"})

task := manager.FindByTitle("Unique Title")
if task == nil || task.Title != "Unique Title" {
t.Errorf("Expected to find task with title 'Unique Title', got %v", task)
}
}


func TestUndoDone(t *testing.T) {
dir, err := ioutil.TempDir("", "taskmgr_tasks_test")
if err != nil {
t.Fatalf("Failed to create temp dir: %v", err)
}
defer os.RemoveAll(dir)

store := NewFileStore(filepath.Join(dir, "tasks.json"))
manager := NewTaskManager(store)

err = manager.Add(Task{Title: "Task to Undo", Done: true})
if err != nil {
t.Fatal("Error adding task:", err)
}

err = manager.UndoDone("0")
if err != nil {
t.Errorf("Expected no error, got %v", err)
}

list := manager.List()
if list[0].Done {
t.Error("Expected task to be marked not done")
}
}


func TestRemoveValidIndex(t *testing.T) {
dir, err := ioutil.TempDir("", "taskmgr_tasks_test")
if err != nil {
t.Fatalf("Failed to create temp dir: %v", err)
}
defer os.RemoveAll(dir)

store := NewFileStore(filepath.Join(dir, "tasks.json"))
manager := NewTaskManager(store)

err = manager.Add(Task{Title: "Task to Remove"})
if err != nil {
t.Fatal("Error adding task:", err)
}

err = manager.Remove("0")
if err != nil {
t.Errorf("Expected no error, got %v", err)
}

list := manager.List()
if len(list) != 0 {
t.Errorf("Expected no tasks, got %d", len(list))
}
}


func TestCountDone(t *testing.T) {
dir, err := ioutil.TempDir("", "taskmgr_tasks_test")
if err != nil {
t.Fatalf("Failed to create temp dir: %v", err)
}
defer os.RemoveAll(dir)

store := NewFileStore(filepath.Join(dir, "tasks.json"))
manager := NewTaskManager(store)

tasks := []Task{
{Title: "Task 1", Done: true},
{Title: "Task 2", Done: false},
{Title: "Task 3", Done: true},
}

err = manager.BulkAdd(tasks)
if err != nil {
t.Fatal("Error adding tasks:", err)
}

doneCount := manager.CountDone()
if doneCount != 2 {
t.Errorf("Expected 2 done tasks, got %d", doneCount)
}
}


func TestBulkAdd(t *testing.T) {
dir, err := ioutil.TempDir("", "taskmgr_tasks_test")
if err != nil {
t.Fatalf("Failed to create temp dir: %v", err)
}
defer os.RemoveAll(dir)

store := NewFileStore(filepath.Join(dir, "tasks.json"))
manager := NewTaskManager(store)

tasks := []Task{
{Title: "Task 1"},
{Title: "Task 2"},
}

err = manager.BulkAdd(tasks)
if err != nil {
t.Fatal("Error adding tasks:", err)
}

list := manager.List()
if len(list) != 2 {
t.Errorf("Expected 2 tasks, got %d", len(list))
}
}


func TestMarkDoneInvalidIndex(t *testing.T) {
dir, err := ioutil.TempDir("", "taskmgr_tasks_test")
if err != nil {
t.Fatalf("Failed to create temp dir: %v", err)
}
defer os.RemoveAll(dir)

store := NewFileStore(filepath.Join(dir, "tasks.json"))
manager := NewTaskManager(store)

err = manager.MarkDone("invalid")
if err == nil {
t.Error("Expected error for invalid index, got nil")
}
}