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