github.com/xenophex/i18n4go@v0.2.7-0.20160907212557-40256cda157a/integration/extract_strings/d_option_test.go (about) 1 package extract_strings_test 2 3 import ( 4 "io/ioutil" 5 "os" 6 "path/filepath" 7 "strings" 8 9 . "github.com/XenoPhex/i18n4go/integration/test_helpers" 10 . "github.com/onsi/ginkgo" 11 . "github.com/onsi/gomega" 12 ) 13 14 var _ = Describe("extract-strings -d dirName", func() { 15 var ( 16 fixturesPath string 17 inputFilesPath string 18 expectedFilesPath string 19 outputPath string 20 ) 21 22 BeforeEach(func() { 23 _, err := os.Getwd() 24 Ω(err).ShouldNot(HaveOccurred()) 25 26 outputPath, err = ioutil.TempDir("", "i18n4go4go") 27 Ω(err).ToNot(HaveOccurred()) 28 29 fixturesPath = filepath.Join("..", "..", "test_fixtures", "extract_strings") 30 inputFilesPath = filepath.Join(fixturesPath, "d_option", "input_files", "quota") 31 expectedFilesPath = filepath.Join(fixturesPath, "d_option", "expected_output") 32 }) 33 34 AfterEach(func() { 35 os.RemoveAll(outputPath) 36 }) 37 38 Context("When i18n4go4go is run with the -d flag", func() { 39 BeforeEach(func() { 40 session := Runi18n("-c", "extract-strings", "-v", "--po", "--meta", "-d", inputFilesPath, "-o", outputPath, "--ignore-regexp", "^[.]\\w+.go$") 41 42 Ω(session.ExitCode()).Should(Equal(0)) 43 }) 44 45 It("Walks input directory and compares each group of generated output to expected output", func() { 46 filepath.Walk(inputFilesPath, func(path string, info os.FileInfo, err error) error { 47 if info.IsDir() { 48 return nil 49 } 50 51 CompareExpectedToGeneratedTraslationJson( 52 filepath.Join(expectedFilesPath, strings.Join([]string{filepath.Base(path), "en.json"}, ".")), 53 filepath.Join(outputPath, strings.Join([]string{filepath.Base(path), "en.json"}, ".")), 54 ) 55 56 CompareExpectedToGeneratedPo( 57 filepath.Join(expectedFilesPath, strings.Join([]string{filepath.Base(path), "en.po"}, ".")), 58 filepath.Join(outputPath, strings.Join([]string{filepath.Base(path), "en.po"}, ".")), 59 ) 60 61 return nil 62 }) 63 }) 64 }) 65 66 Context("When i18n4go4go is run with the -d -r flags", func() { 67 BeforeEach(func() { 68 inputFilesPath = filepath.Join(inputFilesPath, "..") 69 70 session := Runi18n("-c", "extract-strings", "-v", "--po", "--meta", "-d", inputFilesPath, "-o", outputPath, "-r", "--ignore-regexp", "^[.]\\w+.go$") 71 Ω(session.ExitCode()).Should(Equal(0)) 72 }) 73 74 It("Walks input directories and compares each group of generated output to expected output", func() { 75 filepath.Walk(inputFilesPath, func(path string, info os.FileInfo, err error) error { 76 if info.IsDir() { 77 return nil 78 } 79 80 CompareExpectedToGeneratedTraslationJson( 81 filepath.Join(expectedFilesPath, strings.Join([]string{filepath.Base(path), "en.json"}, ".")), 82 filepath.Join(outputPath, strings.Join([]string{filepath.Base(path), "en.json"}, ".")), 83 ) 84 85 CompareExpectedToGeneratedPo( 86 filepath.Join(expectedFilesPath, strings.Join([]string{filepath.Base(path), "en.po"}, ".")), 87 filepath.Join(outputPath, strings.Join([]string{filepath.Base(path), "en.po"}, ".")), 88 ) 89 90 return nil 91 }) 92 }) 93 }) 94 })