docbrown/spec/lib/data_update_scripts/migrate_themes_spec.rb
Michael Kohl bff7cd1118
Theme data update script, remove theme choices from UI (#15225)
* Add prefer_os_color_scheme to users_settings

* Add data update script

* Update theme selector view

* Update spec wording

* Fix spec

Co-authored-by: Jeremy Friesen <jeremy.n.friesen@gmail.com>
2021-11-08 08:38:43 -05:00

48 lines
1.7 KiB
Ruby

require "rails_helper"
require Rails.root.join(
"lib/data_update_scripts/20211019063703_migrate_themes.rb",
)
describe DataUpdateScripts::MigrateThemes do
let(:user) { create(:user) }
it "leaves default theme users on light and leaves OS sync enabled" do
user.setting.update_columns(config_theme: 0)
expect { described_class.new.run }
.to not_change { user.setting.reload.config_theme }.from("light_theme")
.and not_change { user.setting.prefer_os_color_scheme }.from(true)
end
it "updates minimal theme users to light and disables OS sync" do
user.setting.update_columns(config_theme: 1)
expect { described_class.new.run }
.to change { user.setting.reload.config_theme }.to("light_theme")
.and change { user.setting.prefer_os_color_scheme }.from(true).to(false)
end
it "updates night theme users to dark and disables OS sync" do
user.setting.update_columns(config_theme: 2)
expect { described_class.new.run }
.to not_change { user.setting.reload.config_theme }.from("dark_theme")
.and change { user.setting.prefer_os_color_scheme }.from(true).to(false)
end
it "updates pink theme users to light and leaves OS sync enabled" do
user.setting.update_columns(config_theme: 3)
expect { described_class.new.run }
.to change { user.setting.reload.config_theme }.to("light_theme")
.and not_change { user.setting.prefer_os_color_scheme }.from(true)
end
it "updates ten x hacker theme users to dark and disables OS sync" do
user.setting.update_columns(config_theme: 4)
expect { described_class.new.run }
.to change { user.setting.reload.config_theme }.to("dark_theme")
.and change { user.setting.prefer_os_color_scheme }.from(true).to(false)
end
end