ls_command_test.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package commands
  2. import (
  3. "errors"
  4. "github.com/grafana/grafana/pkg/cmd/grafana-cli/commands/commandstest"
  5. s "github.com/grafana/grafana/pkg/cmd/grafana-cli/services"
  6. . "github.com/smartystreets/goconvey/convey"
  7. "testing"
  8. )
  9. func TestMissingPath(t *testing.T) {
  10. var org = validateLsCommmand
  11. Convey("ls command", t, func() {
  12. validateLsCommmand = org
  13. Convey("Missing path", func() {
  14. commandLine := &commandstest.FakeCommandLine{
  15. CliArgs: []string{"ls"},
  16. GlobalFlags: &commandstest.FakeFlagger{
  17. Data: map[string]interface{}{
  18. "path": "",
  19. },
  20. },
  21. }
  22. s.IoHelper = &commandstest.FakeIoUtil{}
  23. Convey("should return error", func() {
  24. err := lsCommand(commandLine)
  25. So(err, ShouldNotBeNil)
  26. })
  27. })
  28. Convey("Path is not a directory", func() {
  29. commandLine := &commandstest.FakeCommandLine{
  30. CliArgs: []string{"ls"},
  31. GlobalFlags: &commandstest.FakeFlagger{
  32. Data: map[string]interface{}{
  33. "path": "/var/lib/grafana/plugins",
  34. },
  35. },
  36. }
  37. s.IoHelper = &commandstest.FakeIoUtil{
  38. FakeIsDirectory: false,
  39. }
  40. Convey("should return error", func() {
  41. err := lsCommand(commandLine)
  42. So(err, ShouldNotBeNil)
  43. })
  44. })
  45. Convey("can override validateLsCommand", func() {
  46. commandLine := &commandstest.FakeCommandLine{
  47. CliArgs: []string{"ls"},
  48. GlobalFlags: &commandstest.FakeFlagger{
  49. Data: map[string]interface{}{
  50. "path": "/var/lib/grafana/plugins",
  51. },
  52. },
  53. }
  54. validateLsCommmand = func(pluginDir string) error {
  55. return errors.New("dummie error")
  56. }
  57. Convey("should return error", func() {
  58. err := lsCommand(commandLine)
  59. So(err.Error(), ShouldEqual, "dummie error")
  60. })
  61. })
  62. Convey("Validate that validateLsCommand is reset", func() {
  63. commandLine := &commandstest.FakeCommandLine{
  64. CliArgs: []string{"ls"},
  65. GlobalFlags: &commandstest.FakeFlagger{
  66. Data: map[string]interface{}{
  67. "path": "/var/lib/grafana/plugins",
  68. },
  69. },
  70. }
  71. Convey("should return error", func() {
  72. err := lsCommand(commandLine)
  73. So(err.Error(), ShouldNotEqual, "dummie error")
  74. })
  75. })
  76. })
  77. }