spec/cases/inherit_spec.rb in activecleaner-0.3.1 vs spec/cases/inherit_spec.rb in activecleaner-0.3.2
- old
+ new
@@ -1,37 +1,40 @@
-# encoding: utf-8
+# frozen_string_literal: true
+
require "spec_helper"
#
# The case
#
# This is to demonstrate when we want to clean some simple fields
# in a common STI scenario.
#
class Ad
+
include ActiveCleaner
attr_accessor :title, :name
clean :title
clean :name, as: :string
+
end
class CarAd < Ad
+
attr_accessor :body, :user_generated_content
clean :body, as: :text
clean :user_generated_content, as: :utf8mb3
+
end
#
# The specs
#
describe "Case: an ad and his inherited car ad" do
-
describe Ad, "._cleaners" do
-
subject { Ad._cleaners }
it "has 2 cleaners" do
expect(subject.length).to eq(2)
end
@@ -41,15 +44,13 @@
end
it "includes a StringCleaner for #name" do
expect(subject[:name].first).to eq(ActiveCleaner::StringCleaner.new(:name))
end
+ end
- end # describe
-
describe CarAd, "._cleaners" do
-
subject { CarAd._cleaners }
it "has 4 cleaners" do
expect(subject.length).to eq(4)
end
@@ -65,21 +66,19 @@
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))
+ expect(subject[:user_generated_content].first)
+ .to eq(ActiveCleaner::Utf8mb3Cleaner.new(:user_generated_content))
end
+ end
- end # describe
-
context "considering a car ad" do
-
let(:subject) { CarAd.new }
describe "#title, marked as to clean with no type" do
-
it "is untouched when legit" do
subject.title = "A good title!"
subject.valid?
expect(subject.title).to eq("A good title!")
end
@@ -87,15 +86,13 @@
it "is cleaned as a string" do
subject.title = " A \n good \t title! "
subject.valid?
expect(subject.title).to eq("A good title!")
end
+ end
- end # describe
-
describe "#name, marked as to clean as a string" do
-
it "is untouched when legit" do
subject.name = "John Doe"
subject.valid?
expect(subject.name).to eq("John Doe")
end
@@ -103,15 +100,13 @@
it "is cleaned as a string" do
subject.name = " \t John \n Doe "
subject.valid?
expect(subject.name).to eq("John Doe")
end
+ end
- end # describe
-
describe "#body, marked as to clean as a text" do
-
it "is untouched when legit" do
subject.body = "Lorem ipsum\ndolor sit amet.\n\nLorem."
subject.valid?
expect(subject.body).to eq("Lorem ipsum\ndolor sit amet.\n\nLorem.")
end
@@ -119,15 +114,13 @@
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
- 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
@@ -135,11 +128,8 @@
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
-
-end # describe
+ end
+ end
+end