Sha256: 21f386cdb17e2998535d3edf621ae75c2c101d405b1ae02cbbe67a6a58cf975d

Contents?: true

Size: 1.16 KB

Versions: 9

Compression:

Stored size: 1.16 KB

Contents

describe Nanoc::CLI::Commands::CompileListeners::Abstract do
  let(:klass) do
    Class.new(described_class) do
      attr_reader :started
      attr_reader :stopped

      def initialize
        @started = false
        @stopped = false
      end

      def start
        @started = true
      end

      def stop
        @stopped = true
      end
    end
  end

  subject { klass.new }

  it 'starts' do
    subject.start
    expect(subject.started).to be
  end

  it 'stops' do
    subject.start
    subject.stop
    expect(subject.stopped).to be
  end

  it 'starts safely' do
    subject.start_safely
    expect(subject.started).to be
  end

  it 'stops safely' do
    subject.start_safely
    subject.stop_safely
    expect(subject.stopped).to be
  end

  context 'listener that does not start or stop properly' do
    let(:klass) do
      Class.new(described_class) do
        def start
          raise 'boom'
        end

        def stop
          raise 'boom'
        end
      end
    end

    it 'raises on start, but not stop' do
      expect { subject.start_safely }.to raise_error(RuntimeError)
      expect { subject.stop_safely }.not_to raise_error
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
nanoc-4.7.9 spec/nanoc/cli/commands/compile_spec.rb
nanoc-4.7.8 spec/nanoc/cli/commands/compile_spec.rb
nanoc-4.7.7 spec/nanoc/cli/commands/compile_spec.rb
nanoc-4.7.6 spec/nanoc/cli/commands/compile_spec.rb
nanoc-4.7.5 spec/nanoc/cli/commands/compile_spec.rb
nanoc-4.7.4 spec/nanoc/cli/commands/compile_spec.rb
nanoc-4.7.3 spec/nanoc/cli/commands/compile_spec.rb
nanoc-4.7.2 spec/nanoc/cli/commands/compile_spec.rb
nanoc-4.7.1 spec/nanoc/cli/commands/compile_spec.rb