diff --git a/spec/command_parsing_spec.lua b/spec/command_parsing_spec.lua index ef4286b..1c9264e 100644 --- a/spec/command_parsing_spec.lua +++ b/spec/command_parsing_spec.lua @@ -63,7 +63,8 @@ describe('cp command parsing', function() local mock_restore = { restore_from_current_file = function() - error('No file is currently open') + logged_messages[#logged_messages + 1] = + { msg = 'No file is currently open', level = vim.log.levels.ERROR } end, } package.loaded['cp.restore'] = mock_restore @@ -74,7 +75,15 @@ describe('cp command parsing', function() package.loaded['cp.commands.picker'] = mock_picker local mock_cache_commands = { - handle_cache_command = function() end, + handle_cache_command = function(cmd) + if cmd.subcommand == 'clear' then + if cmd.platform then + logged_messages[#logged_messages + 1] = { msg = 'cleared cache for ' .. cmd.platform } + else + logged_messages[#logged_messages + 1] = { msg = 'cleared all cache' } + end + end + end, } package.loaded['cp.commands.cache'] = mock_cache_commands diff --git a/spec/panel_spec.lua b/spec/panel_spec.lua index 34eada6..2b9d246 100644 --- a/spec/panel_spec.lua +++ b/spec/panel_spec.lua @@ -26,6 +26,15 @@ describe('Panel integration', function() state.set_platform(platform) return true end, + setup_contest = function(platform, contest, problem, language) + state.set_platform(platform) + state.set_contest_id(contest) + if problem then + state.set_problem_id(problem) + end + end, + setup_problem = function() end, + navigate_problem = function() end, } package.loaded['cp.setup'] = mock_setup diff --git a/spec/picker_spec.lua b/spec/picker_spec.lua index 78d1e07..e9bb5e2 100644 --- a/spec/picker_spec.lua +++ b/spec/picker_spec.lua @@ -183,12 +183,31 @@ describe('cp.picker', function() it('returns empty list when scraping fails', function() local cache = require('cp.cache') + local utils = require('cp.utils') cache.load = function() end cache.get_contest_data = function(_, _) return nil end + utils.setup_python_env = function() + return true + end + utils.get_plugin_path = function() + return '/tmp' + end + + vim.system = function() + return { + wait = function() + return { + code = 1, + stderr = 'Scraping failed', + } + end, + } + end + picker = spec_helper.fresh_require('cp.pickers', { 'cp.pickers.init' }) local problems = picker.get_problems_for_contest('test_platform', 'test_contest')