Skip to content

Commit f5e50a6

Browse files
committed
test(streaming_renderer): auto-discover json files
1 parent c85c525 commit f5e50a6

File tree

1 file changed

+19
-101
lines changed

1 file changed

+19
-101
lines changed

tests/unit/streaming_renderer_spec.lua

Lines changed: 19 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,13 @@ describe('streaming_renderer', function()
1111
before_each(function()
1212
streaming_renderer.reset()
1313

14-
-- disable the config_file apis because topbar uses them
1514
local empty_promise = require('opencode.promise').new():resolve(nil)
1615
config_file.config_promise = empty_promise
1716
config_file.project_promise = empty_promise
1817
config_file.providers_promise = empty_promise
1918

2019
state.windows = ui.create_windows()
2120

22-
-- we don't want output_renderer responding to setting
23-
-- the session id
2421
output_renderer._cleanup_subscriptions()
2522

2623
restore_time_ago = helpers.mock_time_ago()
@@ -41,108 +38,29 @@ describe('streaming_renderer', function()
4138
end
4239
end)
4340

44-
it('replays simple-session correctly', function()
45-
local events = helpers.load_test_data('tests/data/simple-session.json')
46-
state.active_session = helpers.get_session_from_events(events)
47-
local expected = helpers.load_test_data('tests/data/simple-session.expected.json')
41+
local json_files = vim.fn.glob('tests/data/*.json', false, true)
4842

49-
helpers.replay_events(events)
43+
for _, filepath in ipairs(json_files) do
44+
local name = vim.fn.fnamemodify(filepath, ':t:r')
5045

51-
vim.wait(100)
46+
if not name:match('%.expected$') then
47+
local expected_path = 'tests/data/' .. name .. '.expected.json'
5248

53-
local actual = helpers.capture_output(state.windows.output_buf, streaming_renderer._namespace)
49+
if vim.fn.filereadable(expected_path) == 1 then
50+
it('replays ' .. name .. ' correctly', function()
51+
local events = helpers.load_test_data(filepath)
52+
state.active_session = helpers.get_session_from_events(events)
53+
local expected = helpers.load_test_data(expected_path)
5454

55-
assert.same(expected.lines, actual.lines)
56-
assert.same(expected.extmarks, helpers.normalize_namespace_ids(actual.extmarks))
57-
end)
58-
59-
it('replays updating-text correctly', function()
60-
local events = helpers.load_test_data('tests/data/updating-text.json')
61-
state.active_session = helpers.get_session_from_events(events)
62-
local expected = helpers.load_test_data('tests/data/updating-text.expected.json')
63-
64-
helpers.replay_events(events)
65-
66-
vim.wait(100)
67-
68-
local actual = helpers.capture_output(state.windows.output_buf, streaming_renderer._namespace)
69-
70-
assert.same(expected.lines, actual.lines)
71-
assert.same(expected.extmarks, helpers.normalize_namespace_ids(actual.extmarks))
72-
end)
73-
74-
it('replays planning correctly', function()
75-
local events = helpers.load_test_data('tests/data/planning.json')
76-
state.active_session = helpers.get_session_from_events(events)
77-
local expected = helpers.load_test_data('tests/data/planning.expected.json')
78-
79-
helpers.replay_events(events)
80-
81-
vim.wait(100)
82-
83-
local actual = helpers.capture_output(state.windows.output_buf, streaming_renderer._namespace)
84-
85-
assert.same(expected.lines, actual.lines)
86-
assert.same(expected.extmarks, helpers.normalize_namespace_ids(actual.extmarks))
87-
end)
88-
89-
it('replays permission correctly', function()
90-
local events = helpers.load_test_data('tests/data/permission.json')
91-
state.active_session = helpers.get_session_from_events(events)
92-
local expected = helpers.load_test_data('tests/data/permission.expected.json')
93-
94-
helpers.replay_events(events)
95-
96-
vim.wait(100)
97-
98-
local actual = helpers.capture_output(state.windows.output_buf, streaming_renderer._namespace)
99-
100-
assert.same(expected.lines, actual.lines)
101-
assert.same(expected.extmarks, helpers.normalize_namespace_ids(actual.extmarks))
102-
end)
103-
104-
it('replays permission denied correctly', function()
105-
local events = helpers.load_test_data('tests/data/permission-denied.json')
106-
state.active_session = helpers.get_session_from_events(events)
107-
local expected = helpers.load_test_data('tests/data/permission-denied.expected.json')
108-
109-
helpers.replay_events(events)
110-
111-
vim.wait(100)
112-
113-
local actual = helpers.capture_output(state.windows.output_buf, streaming_renderer._namespace)
114-
115-
assert.same(expected.lines, actual.lines)
116-
assert.same(expected.extmarks, helpers.normalize_namespace_ids(actual.extmarks))
117-
end)
118-
119-
it('replays diff correctly', function()
120-
local events = helpers.load_test_data('tests/data/diff.json')
121-
state.active_session = helpers.get_session_from_events(events)
122-
local expected = helpers.load_test_data('tests/data/diff.expected.json')
123-
124-
helpers.replay_events(events)
55+
helpers.replay_events(events)
56+
vim.wait(200)
12557

126-
vim.wait(200)
58+
local actual = helpers.capture_output(state.windows.output_buf, streaming_renderer._namespace)
12759

128-
local actual = helpers.capture_output(state.windows.output_buf, streaming_renderer._namespace)
129-
130-
assert.same(expected.lines, actual.lines)
131-
assert.same(expected.extmarks, helpers.normalize_namespace_ids(actual.extmarks))
132-
end)
133-
134-
it('replays tool-invalid correctly', function()
135-
local events = helpers.load_test_data('tests/data/tool-invalid.json')
136-
state.active_session = helpers.get_session_from_events(events)
137-
local expected = helpers.load_test_data('tests/data/tool-invalid.expected.json')
138-
139-
helpers.replay_events(events)
140-
141-
vim.wait(200)
142-
143-
local actual = helpers.capture_output(state.windows.output_buf, streaming_renderer._namespace)
144-
145-
assert.same(expected.lines, actual.lines)
146-
assert.same(expected.extmarks, helpers.normalize_namespace_ids(actual.extmarks))
147-
end)
60+
assert.are.same(expected.lines, actual.lines)
61+
assert.are.same(expected.extmarks, helpers.normalize_namespace_ids(actual.extmarks))
62+
end)
63+
end
64+
end
65+
end
14866
end)

0 commit comments

Comments
 (0)