github.com/c3pm-labs/c3pm@v0.3.0/ctpm/remove_test.go (about) 1 package ctpm_test 2 3 import ( 4 "github.com/c3pm-labs/c3pm/config" 5 "github.com/c3pm-labs/c3pm/config/manifest" 6 "github.com/c3pm-labs/c3pm/ctpm" 7 . "github.com/onsi/ginkgo" 8 . "github.com/onsi/gomega" 9 "os" 10 "path/filepath" 11 ) 12 13 var _ = Describe("Remove", func() { 14 Describe("Remove dependencies", func() { 15 var projectFolder = getTestFolder("RemoveTestFolder") 16 var projectName = "Test-Remove" 17 var projectType = manifest.Executable 18 var projectDesc = "description" 19 var projectLicense = "MIT" 20 var dependencies = map[string]string{ 21 "calculator": "1.0.0", 22 "sort": "1.0.0", 23 "simple-math": "1.0.0", 24 "super-math": "1.0.0", 25 } 26 var pc *config.ProjectConfig 27 err := os.MkdirAll(projectFolder, os.ModePerm) 28 Ω(err).ShouldNot(HaveOccurred()) 29 30 BeforeEach(func() { 31 m := manifest.New() 32 m.Name = projectName 33 m.Version, err = manifest.VersionFromString("1.0.0") 34 Ω(err).ShouldNot(HaveOccurred()) 35 m.Type = projectType 36 m.License = projectLicense 37 m.Description = projectDesc 38 m.Dependencies = dependencies 39 40 pc = &config.ProjectConfig{Manifest: m, ProjectRoot: projectFolder} 41 42 _, err = os.Create(filepath.Join(projectFolder, "c3pm.yml")) 43 Ω(err).ShouldNot(HaveOccurred()) 44 }) 45 AfterEach(func() { 46 os.Remove(filepath.Join(projectFolder, "c3pm.yml")) 47 }) 48 49 It("remove one dependency", func() { 50 toRemove := []string{"calculator"} 51 err := ctpm.Remove(pc, ctpm.RemoveOptions{Dependencies: toRemove}) 52 Ω(err).ShouldNot(HaveOccurred()) 53 _, ok := pc.Manifest.Dependencies[toRemove[0]] 54 Ω(ok).Should(BeFalse()) 55 56 }) 57 It("remove several dependencies at the same time", func() { 58 toRemove := []string{"calculator", "sort", "simple-math"} 59 err := ctpm.Remove(pc, ctpm.RemoveOptions{Dependencies: toRemove}) 60 Ω(err).ShouldNot(HaveOccurred()) 61 for _, dep := range toRemove { 62 _, ok := pc.Manifest.Dependencies[dep] 63 Ω(ok).Should(BeFalse()) 64 } 65 }) 66 It("remove unexisting dependency", func() { 67 toRemove := []string{"toto"} 68 err := ctpm.Remove(pc, ctpm.RemoveOptions{Dependencies: toRemove}) 69 Ω(err).ShouldNot(HaveOccurred()) 70 for _, dep := range toRemove { 71 _, ok := pc.Manifest.Dependencies[dep] 72 Ω(ok).Should(BeFalse()) 73 } 74 }) 75 It("remove dependency from an empty dependency array", func() { 76 pc.Manifest.Dependencies = map[string]string{} 77 toRemove := []string{"toto"} 78 err := ctpm.Remove(pc, ctpm.RemoveOptions{Dependencies: toRemove}) 79 Ω(err).Should(HaveOccurred()) 80 }) 81 It("remove dependency from an nil dependency array", func() { 82 pc.Manifest.Dependencies = nil 83 toRemove := []string{"toto"} 84 err := ctpm.Remove(pc, ctpm.RemoveOptions{Dependencies: toRemove}) 85 Ω(err).Should(HaveOccurred()) 86 }) 87 }) 88 })