aboutsummaryrefslogtreecommitdiff
path: root/test/functional/ui/output_spec.lua
blob: c58bbe914727ed3b21b3c2eebaef549412c4a4e7 (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
local session = require('test.functional.helpers')(after_each)
local child_session = require('test.functional.terminal.helpers')

if session.pending_win32(pending) then return end

describe("shell command :!", function()
  local screen
  before_each(function()
    session.clear()
    screen = child_session.screen_setup(0, '["'..session.nvim_prog..
      '", "-u", "NONE", "-i", "NONE", "--cmd", "set noswapfile"]')
    screen:expect([[
      {1: }                                                 |
      {4:~                                                 }|
      {4:~                                                 }|
      {4:~                                                 }|
      {5:[No Name]                                         }|
                                                        |
      {3:-- TERMINAL --}                                    |
    ]])
  end)

  after_each(function()
    child_session.feed_data("\3") -- Ctrl-C
    screen:detach()
  end)

  it("displays output even without LF/EOF. #4646 #4569 #3772", function()
    -- NOTE: We use a child nvim (within a :term buffer)
    --       to avoid triggering a UI flush.
    child_session.feed_data(":!printf foo; sleep 200\n")
    screen:expect([[
      {4:~                                                 }|
      {4:~                                                 }|
      {5:[No Name]                                         }|
      :!printf foo; sleep 200                           |
                                                        |
      foo                                               |
      {3:-- TERMINAL --}                                    |
    ]])
  end)
end)