github.com/devstream-io/devstream@v0.13.3/internal/pkg/commit/commit_test.go (about) 1 package commit_test 2 3 import ( 4 "os" 5 "os/exec" 6 "path/filepath" 7 8 . "github.com/onsi/ginkgo" 9 . "github.com/onsi/gomega" 10 11 . "github.com/devstream-io/devstream/internal/pkg/commit" 12 ) 13 14 var _ = Describe("Commit", func() { 15 var testRepoDir string 16 17 BeforeEach(func() { 18 // 1. Create a temporary directory 19 var err error 20 testRepoDir, err = os.MkdirTemp("", "test-repo-*") 21 Expect(err).NotTo(HaveOccurred()) 22 23 // 2. Change the working directory to the temporary directory 24 err = os.Chdir(testRepoDir) 25 Expect(err).NotTo(HaveOccurred()) 26 27 // 3. Initialize a git repository 28 cmd := exec.Command("git", "init") 29 err = cmd.Run() 30 Expect(err).NotTo(HaveOccurred()) 31 32 // 4. Create a file and write some content to it 33 file, err := os.Create(filepath.Join(testRepoDir, "test.txt")) 34 Expect(err).NotTo(HaveOccurred()) 35 36 _, err = file.WriteString("Test content") 37 Expect(err).NotTo(HaveOccurred()) 38 file.Close() 39 40 // 5. Add the file to the git index 41 cmd = exec.Command("git", "add", "test.txt") 42 err = cmd.Run() 43 Expect(err).NotTo(HaveOccurred()) 44 }) 45 46 AfterEach(func() { 47 err := os.RemoveAll(testRepoDir) 48 Expect(err).NotTo(HaveOccurred()) 49 }) 50 51 It("should create a new commit with the given message", func() { 52 message := "Test commit" 53 err := Commit(message) 54 Expect(err).NotTo(HaveOccurred()) 55 56 cmd := exec.Command("git", "log", "--oneline") 57 output, err := cmd.CombinedOutput() 58 Expect(err).NotTo(HaveOccurred()) 59 60 Expect(string(output)).To(ContainSubstring(message)) 61 }) 62 63 It("should return an error when git is not installed", func() { 64 origGitPath, err := exec.LookPath("git") 65 Expect(err).NotTo(HaveOccurred()) 66 67 err = os.Setenv("PATH", "") 68 Expect(err).NotTo(HaveOccurred()) 69 defer func() { 70 err = os.Setenv("PATH", origGitPath) 71 Expect(err).NotTo(HaveOccurred()) 72 }() 73 74 err = Commit("Test commit") 75 Expect(err).To(HaveOccurred()) 76 }) 77 })