aboutsummaryrefslogtreecommitdiff
path: root/test/functional/autocmd/focus_spec.lua
blob: 177e8997cf22e1195fc54f9cea86b45348d7d53e (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
87
88
89
90
91
92
93
94
95
96
local t = require('test.testutil')
local n = require('test.functional.testnvim')()
local tt = require('test.functional.testterm')

local clear = n.clear
local feed_command = n.feed_command
local feed_data = tt.feed_data

if t.skip(t.is_os('win')) then
  return
end

describe('autoread TUI FocusGained/FocusLost', function()
  local f1 = 'xtest-foo'
  local screen

  before_each(function()
    clear()
    screen = tt.setup_child_nvim({
      '-u',
      'NONE',
      '-i',
      'NONE',
      '--cmd',
      'colorscheme vim',
      '--cmd',
      'set noswapfile noshowcmd noruler notermguicolors',
    })
  end)

  teardown(function()
    os.remove(f1)
  end)

  it('external file change', function()
    local path = f1
    local expected_addition = [[
    line 1
    line 2
    line 3
    line 4
    ]]

    t.write_file(path, '')
    local atime = os.time() - 10
    vim.uv.fs_utime(path, atime, atime)

    screen:expect {
      grid = [[
      ^                                                  |
      {4:~                                                 }|*3
      {5:[No Name]                                         }|
                                                        |
      {3:-- TERMINAL --}                                    |
    ]],
    }
    feed_command('edit ' .. path)
    screen:expect {
      grid = [[
      ^                                                  |
      {4:~                                                 }|*3
      {5:xtest-foo                                         }|
      :edit xtest-foo                                   |
      {3:-- TERMINAL --}                                    |
    ]],
    }
    feed_data('\027[O')
    feed_data('\027[O')
    screen:expect {
      grid = [[
      ^                                                  |
      {4:~                                                 }|*3
      {5:xtest-foo                                         }|
      :edit xtest-foo                                   |
      {3:-- TERMINAL --}                                    |
    ]],
      unchanged = true,
    }

    t.write_file(path, expected_addition)

    feed_data('\027[I')

    screen:expect {
      grid = [[
      ^line 1                                            |
      line 2                                            |
      line 3                                            |
      line 4                                            |
      {5:xtest-foo                                         }|
      :edit xtest-foo                                   |
      {3:-- TERMINAL --}                                    |
    ]],
    }
  end)
end)