Sha256: 4f6c79bb88565320c4b7e2f7040693c10ddc2b4c34d953df283ff4076d16b7b1

Contents?: true

Size: 1.59 KB

Versions: 6

Compression:

Stored size: 1.59 KB

Contents

require_relative "../../../test_helper"

module Troo
  describe ListPersistence do
    let(:described_class) { ListPersistence }
    let(:resource) { OpenStruct.new({
      id:     "526d8e130a14a9d846001d97",
      name:   resource_name,
      closed: false
    }) }
    let(:resource_name) { "My Test List" }
    let(:options) { {} }

    before { @list = Fabricate(:list) }
    after  { database_cleanup }

    describe ".initialize" do
      subject { described_class.new(resource, options) }

      it "assigns the resource to an instance variable" do
        subject.instance_variable_get("@resource").must_equal(resource)
      end

      it "assigns the options to an instance variable" do
        subject.instance_variable_get("@options").must_equal(options)
      end
    end

    describe "#persist" do
      subject { described_class.for(resource, options) }

      context "when there is already a local copy" do
        context "and the local copy is identical" do
          it "returns the local copy" do
            subject.must_equal(@list)
          end
        end

        context "and the local copy is out of date" do
          let(:resource_name) { "My Renamed List" }

          it "updates and returns the new local copy" do
            subject.name.must_equal(resource_name)
          end
        end
      end

      context "when there is not already a local copy" do
        let(:resource_name) { "My New Test List" }

        before { database_cleanup }

        it "creates and returns the new local copy" do
          subject.name.must_equal(resource_name)
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
troo-0.0.7 test/lib/troo/models/list_persistence_test.rb
troo-0.0.6 test/lib/troo/models/list_persistence_test.rb
troo-0.0.5 test/lib/troo/models/list_persistence_test.rb
troo-0.0.4 test/lib/troo/models/list_persistence_test.rb
troo-0.0.3 test/lib/troo/models/list_persistence_test.rb
troo-0.0.2 test/lib/troo/models/list_persistence_test.rb