From 20e4e52b8b35a9df996a6047483839c27f0fa607 Mon Sep 17 00:00:00 2001 From: syeopite Date: Mon, 25 Aug 2025 01:36:05 -0700 Subject: [PATCH] Add tests for `popular_enabled` deprecation logic --- spec/invidious/config_spec.cr | 50 +++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 spec/invidious/config_spec.cr diff --git a/spec/invidious/config_spec.cr b/spec/invidious/config_spec.cr new file mode 100644 index 000000000..1e9d33552 --- /dev/null +++ b/spec/invidious/config_spec.cr @@ -0,0 +1,50 @@ +require "../spec_helper" +require "../../src/invidious/jobs.cr" +require "../../src/invidious/jobs/*" +require "../../src/invidious/config.cr" +require "../../src/invidious/user/preferences.cr" + +# Allow this file to be executed independently of other specs +{% if !@type.has_constant?("CONFIG") %} + CONFIG = Config.from_yaml("") +{% end %} + +private def construct_config(yaml) + config = Config.from_yaml(yaml) + File.open(File::NULL, "w") { |io| config.process_deprecation(io) } + return config +end + +Spectator.describe Config do + context "page_enabled" do + it "Can disable pages" do + config = construct_config <<-YAML + pages_enabled: + popular: false + search: false + YAML + + expect(config.page_enabled?("trending")).to eq(true) + expect(config.page_enabled?("popular")).to eq(false) + expect(config.page_enabled?("search")).to eq(false) + end + + it "Takes precedence over popular_enabled" do + config = construct_config <<-YAML + popular_enabled: false + pages_enabled: + popular: true + YAML + + expect(config.page_enabled?("popular")).to eq(true) + end + end + + it "Deprecated popular_enabled still works" do + config = construct_config <<-YAML + popular_enabled: false + YAML + + expect(config.page_enabled?("popular")).to eq(false) + end +end