@@ -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
14866end )
0 commit comments