v1.3.4_test.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package migrationnotes
  2. import (
  3. "io/fs"
  4. "io/ioutil"
  5. "os"
  6. "path"
  7. "path/filepath"
  8. "testing"
  9. "github.com/stretchr/testify/require"
  10. )
  11. func Test_needShow1_3_4(t *testing.T) {
  12. root, err := os.MkdirTemp("", "goctl-model")
  13. require.NoError(t, err)
  14. defer os.RemoveAll(root)
  15. dir1 := path.Join(root, "dir1")
  16. require.NoError(t, os.Mkdir(dir1, fs.ModePerm))
  17. ioutil.WriteFile(filepath.Join(dir1, "foo_gen.go"), nil, fs.ModePerm)
  18. dir2 := path.Join(root, "dir2")
  19. require.NoError(t, os.Mkdir(dir2, fs.ModePerm))
  20. ioutil.WriteFile(filepath.Join(dir2, "foomodel.go"), nil, fs.ModePerm)
  21. dir3 := path.Join(root, "dir3")
  22. require.NoError(t, os.Mkdir(dir3, fs.ModePerm))
  23. ioutil.WriteFile(filepath.Join(dir3, "irrelevant.go"), nil, fs.ModePerm)
  24. type args struct {
  25. dir string
  26. style string
  27. }
  28. tests := []struct {
  29. name string
  30. args args
  31. want bool
  32. wantErr bool
  33. }{
  34. {
  35. name: "dir that contains *_gen.go should return false",
  36. args: args{
  37. dir: dir1,
  38. },
  39. want: false,
  40. },
  41. {
  42. name: "dir that contains *model.go without *_gen.go should return true",
  43. args: args{
  44. dir: dir2,
  45. },
  46. want: true,
  47. },
  48. {
  49. name: "dir that only contains irrelevant files should return false",
  50. args: args{
  51. dir: dir3,
  52. },
  53. want: false,
  54. },
  55. }
  56. for _, tt := range tests {
  57. t.Run(tt.name, func(t *testing.T) {
  58. got, err := needShow1_3_4(tt.args.dir, tt.args.style)
  59. if (err != nil) != tt.wantErr {
  60. t.Errorf("needShow1_3_4() error = %v, wantErr %v", err, tt.wantErr)
  61. return
  62. }
  63. if got != tt.want {
  64. t.Errorf("needShow1_3_4() = %v, want %v", got, tt.want)
  65. }
  66. })
  67. }
  68. }