preparer_test.go 1.2 KB

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