From aca08cfb1103787daafbd9c9ec60ee07865e05f6 Mon Sep 17 00:00:00 2001 From: Anna Buianova Date: Wed, 24 Mar 2021 11:33:58 +0300 Subject: [PATCH] Added credits_awarded to badges (#13073) * Added credits_awarded to badges * Data update script for updating credits_awarded * Data update script for updating credits_awarded * Added null: false to badges.credits_awarded --- ...312095649_add_credits_awarded_to_badges.rb | 5 +++++ db/schema.rb | 1 + ...10322092753_fill_badges_credits_awarded.rb | 9 ++++++++ .../fill_badges_credits_awarded_spec.rb | 22 +++++++++++++++++++ 4 files changed, 37 insertions(+) create mode 100644 db/migrate/20210312095649_add_credits_awarded_to_badges.rb create mode 100644 lib/data_update_scripts/20210322092753_fill_badges_credits_awarded.rb create mode 100644 spec/lib/data_update_scripts/fill_badges_credits_awarded_spec.rb diff --git a/db/migrate/20210312095649_add_credits_awarded_to_badges.rb b/db/migrate/20210312095649_add_credits_awarded_to_badges.rb new file mode 100644 index 000000000..8fefddedd --- /dev/null +++ b/db/migrate/20210312095649_add_credits_awarded_to_badges.rb @@ -0,0 +1,5 @@ +class AddCreditsAwardedToBadges < ActiveRecord::Migration[6.0] + def change + add_column :badges, :credits_awarded, :integer, default: 0, null: false + end +end diff --git a/db/schema.rb b/db/schema.rb index 6ff1f75a0..b9de1234b 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -197,6 +197,7 @@ ActiveRecord::Schema.define(version: 2021_03_23_190443) do create_table "badges", force: :cascade do |t| t.string "badge_image" t.datetime "created_at", null: false + t.integer "credits_awarded", default: 0, null: false t.string "description", null: false t.string "slug", null: false t.string "title", null: false diff --git a/lib/data_update_scripts/20210322092753_fill_badges_credits_awarded.rb b/lib/data_update_scripts/20210322092753_fill_badges_credits_awarded.rb new file mode 100644 index 000000000..5d063155e --- /dev/null +++ b/lib/data_update_scripts/20210322092753_fill_badges_credits_awarded.rb @@ -0,0 +1,9 @@ +module DataUpdateScripts + class FillBadgesCreditsAwarded + def run + return unless SiteConfig.dev_to? + + Badge.update_all("credits_awarded = 5") + end + end +end diff --git a/spec/lib/data_update_scripts/fill_badges_credits_awarded_spec.rb b/spec/lib/data_update_scripts/fill_badges_credits_awarded_spec.rb new file mode 100644 index 000000000..43ab779ef --- /dev/null +++ b/spec/lib/data_update_scripts/fill_badges_credits_awarded_spec.rb @@ -0,0 +1,22 @@ +require "rails_helper" +require Rails.root.join( + "lib/data_update_scripts/20210322092753_fill_badges_credits_awarded.rb", +) + +describe DataUpdateScripts::FillBadgesCreditsAwarded do + it "updates badges on dev.to" do + allow(SiteConfig).to receive(:dev_to?).and_return(true) + badge = create(:badge, credits_awarded: 0) + expect do + described_class.new.run + end.to change { badge.reload.credits_awarded }.from(0).to(5) + end + + it "doesn't update badges on other forems" do + allow(SiteConfig).to receive(:dev_to?).and_return(false) + badge = create(:badge, credits_awarded: 0) + expect do + described_class.new.run + end.not_to change { badge.reload.credits_awarded } + end +end