From 373e7f6e7608fd1ceb0c1ad7080ca70d10f1c204 Mon Sep 17 00:00:00 2001 From: Barrett Ruth Date: Sun, 21 Sep 2025 12:26:06 -0400 Subject: [PATCH] fix(test): mock caches and everything else --- lua/cp/init.lua | 3 ++- lua/cp/log.lua | 4 ++-- lua/cp/pickers/init.lua | 6 ++++-- spec/picker_spec.lua | 16 ++++++++++++++++ spec/scraper_spec.lua | 27 +++++++++++++++++++++++++++ 5 files changed, 51 insertions(+), 5 deletions(-) diff --git a/lua/cp/init.lua b/lua/cp/init.lua index 6389e14..71b6f43 100644 --- a/lua/cp/init.lua +++ b/lua/cp/init.lua @@ -91,7 +91,8 @@ local function setup_problem(contest_id, problem_id, language) contest_id, problem_id ), - vim.log.levels.WARN + vim.log.levels.INFO, + true ) local scrape_result = scrape.scrape_problem(ctx) diff --git a/lua/cp/log.lua b/lua/cp/log.lua index ca80de1..fd98c8a 100644 --- a/lua/cp/log.lua +++ b/lua/cp/log.lua @@ -6,9 +6,9 @@ function M.set_config(user_config) config = user_config end -function M.log(msg, level) +function M.log(msg, level, override) level = level or vim.log.levels.INFO - if not config or config.debug or level >= vim.log.levels.WARN then + if not config or config.debug or level >= vim.log.levels.WARN or override then vim.notify(('[cp.nvim]: %s'):format(msg), level) end end diff --git a/lua/cp/pickers/init.lua b/lua/cp/pickers/init.lua index ebaa0ce..5a1b644 100644 --- a/lua/cp/pickers/init.lua +++ b/lua/cp/pickers/init.lua @@ -51,7 +51,8 @@ local function get_contests_for_platform(platform) local platform_display_name = constants.PLATFORM_DISPLAY_NAMES[platform] or platform logger.log( ('Scraping %s for contests, this may take a few seconds...'):format(platform_display_name), - vim.log.levels.WARN + vim.log.levels.INFO, + true ) local plugin_path = utils.get_plugin_path() @@ -125,7 +126,8 @@ local function get_problems_for_contest(platform, contest_id) platform_display_name, contest_id ), - vim.log.levels.WARN + vim.log.levels.INFO, + true ) local metadata_result = scrape.scrape_contest_metadata(platform, contest_id) diff --git a/spec/picker_spec.lua b/spec/picker_spec.lua index 8722544..ab4d36e 100644 --- a/spec/picker_spec.lua +++ b/spec/picker_spec.lua @@ -68,6 +68,22 @@ describe('cp.picker', function() end) it('returns contest list when scraper succeeds', function() + local cache = require('cp.cache') + local utils = require('cp.utils') + + cache.load = function() end + cache.get_contest_list = function() + return nil + end + cache.set_contest_list = function() end + + utils.setup_python_env = function() + return true + end + utils.get_plugin_path = function() + return '/test/path' + end + vim.system = function(_, _) return { wait = function() diff --git a/spec/scraper_spec.lua b/spec/scraper_spec.lua index 880146e..7ea38bb 100644 --- a/spec/scraper_spec.lua +++ b/spec/scraper_spec.lua @@ -129,10 +129,37 @@ describe('cp.scrape', function() describe('system dependency checks', function() it('handles missing uv executable', function() + local cache = require('cp.cache') + local utils = require('cp.utils') + + cache.load = function() end + cache.get_contest_data = function() + return nil + end + vim.fn.executable = function(cmd) return cmd == 'uv' and 0 or 1 end + utils.setup_python_env = function() + return vim.fn.executable('uv') == 1 + end + + vim.system = function(cmd) + if cmd[1] == 'ping' then + return { + wait = function() + return { code = 0 } + end, + } + end + return { + wait = function() + return { code = 0 } + end, + } + end + local result = scrape.scrape_contest_metadata('atcoder', 'abc123') assert.is_false(result.success)