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
This commit is contained in:
Anna Buianova 2021-03-24 11:33:58 +03:00 committed by GitHub
parent 7c31a9cc98
commit aca08cfb11
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 37 additions and 0 deletions

View file

@ -0,0 +1,5 @@
class AddCreditsAwardedToBadges < ActiveRecord::Migration[6.0]
def change
add_column :badges, :credits_awarded, :integer, default: 0, null: false
end
end

View file

@ -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

View file

@ -0,0 +1,9 @@
module DataUpdateScripts
class FillBadgesCreditsAwarded
def run
return unless SiteConfig.dev_to?
Badge.update_all("credits_awarded = 5")
end
end
end

View file

@ -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