aboutsummaryrefslogtreecommitdiff
path: root/test/functional/plugin/health_spec.lua
blob: 52dc0087078e9640c9b0c91e2d1f0414b89474af (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
local helpers = require('test.functional.helpers')(after_each)
local plugin_helpers = require('test.functional.plugin.helpers')

describe('health.vim', function()
  before_each(function()
    plugin_helpers.reset()
    -- Provides functions:
    --    health#broken#check()
    --    health#success1#check()
    --    health#success2#check()
    helpers.execute("set runtimepath+=test/functional/fixtures")
  end)

  it("reports", function()
    helpers.source([[
      let g:health_report = execute([
        \ "call health#report_start('Check Bar')",
        \ "call health#report_ok('Bar status')",
        \ "call health#report_ok('Other Bar status')",
        \ "call health#report_warn('Zub')",
        \ "call health#report_start('Baz')",
        \ "call health#report_warn('Zim', ['suggestion 1', 'suggestion 2'])"
        \ ])
    ]])
    local result = helpers.eval("g:health_report")

    helpers.eq(helpers.dedent([[


      ## Check Bar
        - SUCCESS: Bar status
        - SUCCESS: Other Bar status
        - WARNING: Zub

      ## Baz
        - WARNING: Zim
          - SUGGESTIONS:
            - suggestion 1
            - suggestion 2]]),
      result)
  end)


  describe(":CheckHealth", function()
    it("concatenates multiple reports", function()
      helpers.execute("CheckHealth success1 success2")
      helpers.expect([[

        health#success1#check
        ========================================================================
        ## report 1
          - SUCCESS: everything is fine

        ## report 2
          - SUCCESS: nothing to see here

        health#success2#check
        ========================================================================
        ## another 1
          - SUCCESS: ok
        ]])
    end)

    it("gracefully handles broken healthcheck", function()
      helpers.execute("CheckHealth broken")
      helpers.expect([[

        health#broken#check
        ========================================================================
          - ERROR: Failed to run healthcheck for "broken" plugin. Exception:
            function health#check[20]..health#broken#check, line 1
            caused an error
        ]])
    end)

    it("gracefully handles invalid healthcheck", function()
      helpers.execute("CheckHealth non_existent_healthcheck")
      helpers.expect([[

        health#non_existent_healthcheck#check
        ========================================================================
          - ERROR: No healthcheck found for "non_existent_healthcheck" plugin.
        ]])
    end)
  end)
end)