spec/formatter_spec.rb in cistern-2.0.2 vs spec/formatter_spec.rb in cistern-2.0.3

- old
+ new

@@ -1,43 +1,77 @@ require 'spec_helper' -describe "#inspect" do - class Inspector < Sample::Model - identity :id - attribute :name +class Inspector < Sample::Model + identity :id + attribute :name +end + +class Anon < Sample::Model + attribute :chan +end + +class Inspectors < Sample::Collection + model Inspector + + def all(options={}) + merge_attributes(options) + self.load([{id: 1, name: "2"},{id: 3, name: "4"}]) end +end - class Inspectors < Sample::Collection - model Inspector +describe Cistern::Formatter::Default do + before { Cistern.formatter = described_class } - def all(options={}) - merge_attributes(options) - self.load([{id: 1, name: "2"},{id: 3, name: "4"}]) - end + it "formats a model" do + expect( + Inspector.new(id: 1, name: "name").inspect + ).to match( + /<Inspector:0x[a-z0-9]+> {:id=>1, :name=>\"name\"}/ + ) + + Anon.inspect end - describe "Cistern::Model" do - it "should use awesome_print" do - Cistern.formatter = Cistern::Formatter::AwesomePrint + it "formats a collection" do + expect( + Inspectors.new.all.inspect + ).to match( + /<Inspectors:0x[a-z0-9]+> {} records/ + ) + end +end - Inspector.new(id: 1, name: "name").inspect.match /(?x-mi:\#<Inspector:0x[0-9a-f]+>\ {\n\ \ \ \ \ \ :id\x1B\[0;37m\ =>\ \x1B\[0m\x1B\[1;34m1\x1B\[0m,\n\ \ \ \ :name\x1B\[0;37m\ =>\ \x1B\[0m\x1B\[0;33m"name"\x1B\[0m\n})/ - end +describe Cistern::Formatter::AwesomePrint do + before { Cistern.formatter = described_class } - it "should use formatador" do - Cistern.formatter = Cistern::Formatter::Formatador + it "formats a model" do + expect( + Inspector.new(id: 1, name: "name").inspect + ).to match( + /(?x-mi:\#<Inspector:0x[0-9a-f]+>\ {\n\ \ \ \ \ \ :id\x1B\[0;37m\ =>\ \x1B\[0m\x1B\[1;34m1\x1B\[0m,\n\ \ \ \ :name\x1B\[0;37m\ =>\ \x1B\[0m\x1B\[0;33m"name"\x1B\[0m\n})/ + ) + end - expect(Inspector.new(id: 1, name: "name").inspect).to eq(%q{ <Inspector + it "formats a collection" do + expect(Inspectors.new.all.inspect).to match(/Inspectors\s+{.*}$/m) # close enough + end +end + +describe Cistern::Formatter::Formatador do + before { Cistern.formatter = described_class } + + it "formats a model" do + Cistern.formatter = Cistern::Formatter::Formatador + + expect(Inspector.new(id: 1, name: "name").inspect).to eq(%q{ <Inspector id=1, name="name" >}) - end end - describe "Cistern::Collection" do - it "should use formatador" do - Cistern.formatter = Cistern::Formatter::Formatador - expect(Inspectors.new.all.inspect).to eq(%q{ <Inspectors + it "formats a collection" do + expect(Inspectors.new.all.inspect).to eq(%q{ <Inspectors [ <Inspector id=1, name="2" >, @@ -45,13 +79,7 @@ id=3, name="4" > ] >}) - end - - it "should use awesome_print" do - Cistern.formatter = Cistern::Formatter::AwesomePrint - expect(Inspectors.new.all.inspect).to match(/Inspectors\s+{.*}$/m) # close enough - end end end