# frozen_string_literal: true RSpec.describe Jobs::CheckTranslationOverrides do fab!(:up_to_date_translation) { Fabricate(:translation_override, translation_key: "title") } fab!(:deprecated_translation) do allow_missing_translations { Fabricate(:translation_override, translation_key: "foo.bar") } end fab!(:outdated_translation) do Fabricate(:translation_override, translation_key: "posts", original_translation: "outdated") end fab!(:invalid_translation) { Fabricate(:translation_override, translation_key: "topics") } it "marks translations with keys which no longer exist in the locale file" do expect { described_class.new.execute({}) }.to change { deprecated_translation.reload.status }.from("up_to_date").to("deprecated") end it "marks translations with invalid interpolation keys" do invalid_translation.update_attribute("value", "Invalid %{foo}") expect { described_class.new.execute({}) }.to change { invalid_translation.reload.status }.from( "up_to_date", ).to("invalid_interpolation_keys") end it "marks translations that are outdated" do expect { described_class.new.execute({}) }.to change { outdated_translation.reload.status }.from("up_to_date").to("outdated") end it "does not mark up to date translations" do expect { described_class.new.execute({}) }.not_to change { up_to_date_translation.reload.status } end end