MCPcopy Index your code
hub / github.com/cheat/cheat / TestCopyErrors

Function TestCopyErrors

internal/sheet/copy_error_test.go:11–102  ·  view source on GitHub ↗

TestCopyErrors tests error cases for the Copy method

(t *testing.T)

Source from the content-addressed store, hash-verified

9
10// TestCopyErrors tests error cases for the Copy method
11func TestCopyErrors(t *testing.T) {
12 tests := []struct {
13 name string
14 setup func() (*Sheet, string, func())
15 }{
16 {
17 name: "source file does not exist",
18 setup: func() (*Sheet, string, func()) {
19 sheet := &Sheet{
20 Title: "test",
21 Path: "/non/existent/file.txt",
22 CheatPath: "test",
23 }
24 dest := filepath.Join(os.TempDir(), "copy-test-dest.txt")
25 cleanup := func() {
26 os.Remove(dest)
27 }
28 return sheet, dest, cleanup
29 },
30 },
31 {
32 name: "destination directory creation fails",
33 setup: func() (*Sheet, string, func()) {
34 src, err := os.CreateTemp("", "copy-test-src-*")
35 if err != nil {
36 t.Fatalf("failed to create temp file: %v", err)
37 }
38 src.WriteString("test content")
39 src.Close()
40
41 sheet := &Sheet{
42 Title: "test",
43 Path: src.Name(),
44 CheatPath: "test",
45 }
46
47 blockerFile := filepath.Join(os.TempDir(), "copy-blocker-file")
48 if err := os.WriteFile(blockerFile, []byte("blocker"), 0644); err != nil {
49 t.Fatalf("failed to create blocker file: %v", err)
50 }
51
52 dest := filepath.Join(blockerFile, "subdir", "dest.txt")
53
54 cleanup := func() {
55 os.Remove(src.Name())
56 os.Remove(blockerFile)
57 }
58 return sheet, dest, cleanup
59 },
60 },
61 {
62 name: "destination file creation fails",
63 setup: func() (*Sheet, string, func()) {
64 src, err := os.CreateTemp("", "copy-test-src-*")
65 if err != nil {
66 t.Fatalf("failed to create temp file: %v", err)
67 }
68 src.WriteString("test content")

Callers

nothing calls this directly

Calls 1

CopyMethod · 0.95

Tested by

no test coverage detected