TestPager tests the Pager function
(t *testing.T)
| 9 | |
| 10 | // TestPager tests the Pager function |
| 11 | func TestPager(t *testing.T) { |
| 12 | // Save original env var |
| 13 | oldPager := os.Getenv("PAGER") |
| 14 | defer os.Setenv("PAGER", oldPager) |
| 15 | |
| 16 | t.Run("windows default", func(t *testing.T) { |
| 17 | if runtime.GOOS != "windows" { |
| 18 | t.Skip("skipping windows test on non-windows platform") |
| 19 | } |
| 20 | |
| 21 | os.Setenv("PAGER", "") |
| 22 | pager := Pager() |
| 23 | if pager != "more" { |
| 24 | t.Errorf("expected 'more' on windows, got %s", pager) |
| 25 | } |
| 26 | }) |
| 27 | |
| 28 | t.Run("PAGER env var", func(t *testing.T) { |
| 29 | if runtime.GOOS == "windows" { |
| 30 | t.Skip("skipping non-windows test on windows platform") |
| 31 | } |
| 32 | |
| 33 | os.Setenv("PAGER", "bat") |
| 34 | pager := Pager() |
| 35 | if pager != "bat" { |
| 36 | t.Errorf("expected PAGER env var value, got %s", pager) |
| 37 | } |
| 38 | }) |
| 39 | |
| 40 | t.Run("fallback to system pager", func(t *testing.T) { |
| 41 | if runtime.GOOS == "windows" { |
| 42 | t.Skip("skipping non-windows test on windows platform") |
| 43 | } |
| 44 | |
| 45 | os.Setenv("PAGER", "") |
| 46 | pager := Pager() |
| 47 | |
| 48 | if pager == "" { |
| 49 | return // no pager found is acceptable |
| 50 | } |
| 51 | |
| 52 | // Should find one of the known fallback pagers |
| 53 | validPagers := map[string]bool{ |
| 54 | "pager": true, |
| 55 | "less": true, |
| 56 | "more": true, |
| 57 | } |
| 58 | |
| 59 | base := filepath.Base(pager) |
| 60 | if !validPagers[base] { |
| 61 | t.Errorf("unexpected pager value: %s (base: %s)", pager, base) |
| 62 | } |
| 63 | }) |
| 64 | |
| 65 | t.Run("no pager available", func(t *testing.T) { |
| 66 | if runtime.GOOS == "windows" { |
| 67 | t.Skip("skipping non-windows test on windows platform") |
| 68 | } |