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