preparer_test.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. //go:build !integration
  2. // +build !integration
  3. package workdir
  4. import (
  5. "io"
  6. "strings"
  7. "testing"
  8. "github.com/stretchr/testify/assert"
  9. "github.com/Jguer/yay/v12/pkg/settings"
  10. "github.com/Jguer/yay/v12/pkg/text"
  11. )
  12. func newTestLogger() *text.Logger {
  13. return text.NewLogger(io.Discard, io.Discard, strings.NewReader(""), true, "test")
  14. }
  15. // Test order of pre-download-sources hooks
  16. func TestPreDownloadSourcesHooks(t *testing.T) {
  17. testCases := []struct {
  18. name string
  19. cfg *settings.Configuration
  20. wantHook []string
  21. }{
  22. {
  23. name: "clean, diff, edit",
  24. cfg: &settings.Configuration{
  25. CleanMenu: true,
  26. DiffMenu: true,
  27. EditMenu: true,
  28. },
  29. wantHook: []string{"clean", "diff", "edit"},
  30. },
  31. {
  32. name: "clean, edit",
  33. cfg: &settings.Configuration{
  34. CleanMenu: true,
  35. DiffMenu: false,
  36. EditMenu: true,
  37. },
  38. wantHook: []string{"clean", "edit"},
  39. },
  40. {
  41. name: "clean, diff",
  42. cfg: &settings.Configuration{
  43. CleanMenu: true,
  44. DiffMenu: true,
  45. EditMenu: false,
  46. },
  47. wantHook: []string{"clean", "diff"},
  48. },
  49. }
  50. for _, tc := range testCases {
  51. t.Run(tc.name, func(t *testing.T) {
  52. preper := NewPreparer(nil, nil, tc.cfg, newTestLogger())
  53. assert.Len(t, preper.hooks, len(tc.wantHook))
  54. got := make([]string, 0, len(preper.hooks))
  55. for _, hook := range preper.hooks {
  56. got = append(got, hook.Name)
  57. }
  58. assert.Equal(t, tc.wantHook, got)
  59. })
  60. }
  61. }