backtrace_spec.rb 1.21 KB
require 'spec_helper'

describe Backtrace do
  subject { described_class.new }

  its(:fingerprint) { should be_present }

  describe "#similar" do
    context "no similar backtrace" do
      its(:similar) { should be_nil }
    end

    context "similar backtrace exist" do
      let!(:similar_backtrace) { Fabricate(:backtrace, :fingerprint => fingerprint) }
      let(:fingerprint) { "fingerprint" }

      before { subject.stub(:fingerprint => fingerprint) }

      its(:similar) { should == similar_backtrace }
    end
  end

  describe "find_or_create" do
    subject { described_class.find_or_create(attributes) }
    let(:attributes) { mock :attributes }
    let(:backtrace) { mock :backtrace }

    before { described_class.stub(:new => backtrace) }

    context "no similar backtrace" do
      before { backtrace.stub(:similar => nil) }
      it "create new backtrace" do
        described_class.should_receive(:create).with(attributes)

        described_class.find_or_create(attributes)
      end
    end

    context "similar backtrace exist" do
      let(:similar_backtrace) { mock :similar_backtrace }
      before { backtrace.stub(:similar => similar_backtrace) }

      it { should == similar_backtrace }
    end
  end
end