Sha256: 31cd35fdf8547a9c409b9db2da4d891e1c15ae150ba95668d6d8559bfe5a600c

Contents?: true

Size: 1.56 KB

Versions: 7

Compression:

Stored size: 1.56 KB

Contents

require 'spec_helper'

require_relative '../../../lib/locomotive/steam/adapters/filesystem.rb'

describe Locomotive::Steam::FilesystemAdapter do

  let(:mapper)  { instance_double('Mapper', name: :test) }
  let(:scope)   { instance_double('Scope', site: site, locale: nil, to_key: 'key') }
  let(:adapter) { Locomotive::Steam::FilesystemAdapter.new(nil) }

  describe '#key' do

    subject { adapter.key(:title, :in) }

    it { is_expected.to eq 'title.in' }

  end

  describe '#query' do

    let(:collection) { [OpenStruct.new(site_id: 42, name: 'Hello world')] }

    before do
      allow(mapper).to receive(:to_entity) { |arg| arg }
      allow(adapter).to receive(:collection).and_return(collection)
    end

    subject { adapter.query(mapper, scope) { where(name: 'Hello world') } }

    context 'not scoped by a site' do

      let(:site) { nil }
      it { expect(subject.first.name).to eq 'Hello world' }

    end

    context 'scoped by a site' do

      let(:site) { instance_double('Site', _id: 42) }
      it { expect(subject.first.name).to eq 'Hello world' }

      context 'unknown site id' do

        let(:site) { instance_double('Site', _id: 1) }
        it { expect(subject.first).to eq nil }

      end

    end

  end

  describe '#inc' do

    let(:entity) { OpenStruct.new(name: 'My post', views: 41) }

    subject { adapter.inc(mapper, entity, :views) }

    it { expect(subject.views).to eq 42 }

    describe 'by an amount different from 1' do

      subject { adapter.inc(mapper, entity, :views, 3) }

      it { expect(subject.views).to eq 44 }

    end

  end

end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
locomotivecms_steam-1.1.2 spec/unit/adapters/filesystem_adapter_spec.rb
locomotivecms_steam-1.1.1 spec/unit/adapters/filesystem_adapter_spec.rb
locomotivecms_steam-1.1.0 spec/unit/adapters/filesystem_adapter_spec.rb
locomotivecms_steam-1.1.0.rc3 spec/unit/adapters/filesystem_adapter_spec.rb
locomotivecms_steam-1.1.0.rc2 spec/unit/adapters/filesystem_adapter_spec.rb
locomotivecms_steam-1.1.0.rc1 spec/unit/adapters/filesystem_adapter_spec.rb
locomotivecms_steam-1.0.1 spec/unit/adapters/filesystem_adapter_spec.rb