spec/cases/inherit_spec.rb in activecleaner-0.2.0 vs spec/cases/inherit_spec.rb in activecleaner-0.3.0

- old
+ new

@@ -15,13 +15,14 @@ clean :title clean :name, as: :string end class CarAd < Ad - attr_accessor :body + attr_accessor :body, :user_generated_content clean :body, as: :text + clean :user_generated_content, as: :utf8mb3 end # # The specs # @@ -47,12 +48,12 @@ describe CarAd, "._cleaners" do subject { CarAd._cleaners } - it "has 3 cleaners" do - expect(subject.length).to eq(3) + it "has 4 cleaners" do + expect(subject.length).to eq(4) end it "includes a StringCleaner for #title" do expect(subject[:title].first).to eq(ActiveCleaner::StringCleaner.new(:title)) end @@ -63,10 +64,14 @@ it "includes a TextCleaner for #body" do expect(subject[:body].first).to eq(ActiveCleaner::TextCleaner.new(:body)) end + it "includes a Utf8mb3Cleaner for #user_generated_content" do + expect(subject[:user_generated_content].first).to eq(ActiveCleaner::Utf8mb3Cleaner.new(:user_generated_content)) + end + end # describe context "considering a car ad" do let(:subject) { CarAd.new } @@ -113,9 +118,25 @@ it "is cleaned as a text" do subject.body = "Lorem \t ipsum \t \n dolor \t sit \t amet.\n\n\nLorem." subject.valid? expect(subject.body).to eq("Lorem ipsum\ndolor sit amet.\n\nLorem.") + end + + end # describe + + describe "#user_generated_content, marked as to clean as utf8mb3" do + + it "is untouched when legit" do + subject.user_generated_content = "A good user generated content!" + subject.valid? + expect(subject.user_generated_content).to eq("A good user generated content!") + end + + it "is cleaned as an utf8mb3" do + subject.user_generated_content = "A good 😀 user generated content!" + subject.valid? + expect(subject.user_generated_content).to eq("A good user generated content!") end end # describe end # context