Sha256: d15362bd7d5fb663d7f06ca4ce5c204771fa18b2ba891199d7323ae05f5c0867

Contents?: true

Size: 1.71 KB

Versions: 5

Compression:

Stored size: 1.71 KB

Contents

require "spec_helper"

describe Kitabu::Stats do
  let(:root_dir) { double("root dir").as_null_object }
  let(:format) { double("format").as_null_object }
  let(:content) { "" }
  subject(:stats) { Kitabu::Stats.new(root_dir) }

  before {
    allow(stats).to receive_message_chain(:content).and_return(content)
  }

  context "getting content" do
    it "generates content" do
      expect(Kitabu::Exporter::HTML)
        .to receive(:new)
        .with(root_dir)
        .and_return(format)

      Kitabu::Stats.new(root_dir).content
    end

    it "returns content" do
      allow(Kitabu::Exporter::HTML).to receive_message_chain(:new).and_return(format)
      allow(format).to receive_message_chain(:content).and_return("some content")

      expect(Kitabu::Stats.new(root_dir).content).to eql("some content")
    end
  end

  context "words counting" do
    let(:content) { "a b c" }
    it { expect(stats.words).to eql(3) }
  end

  context "chapters counting" do
    let(:content) { "<div class='chapter'/>" * 5 }
    it { expect(stats.chapters).to eql(5) }
  end

  context "images counting" do
    let(:content) { "<img/>" * 2 }
    it { expect(stats.images).to eql(2) }
  end

  context "footnotes counting" do
    let(:content) { "<p class='footnote'/>" * 10 }
    it { expect(stats.footnotes).to eql(10) }
  end

  context "external links counting" do
    let(:content) {
      <<-HTML
        <a href="http://example.org">example.org</a>
        <a href="http://subdomain.example.org">subdomain.example.org</a>
        <a href="#some-anchor">anchor</a>
      HTML
    }

    it { expect(stats.links).to eql(2) }
  end

  context "code blocks" do
    let(:content) { "<pre/>" * 3 }
    it { expect(stats.code_blocks).to eql(3) }
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
kitabu-2.1.0 spec/kitabu/stats_spec.rb
kitabu-2.0.4 spec/kitabu/stats_spec.rb
kitabu-2.0.3 spec/kitabu/stats_spec.rb
kitabu-2.0.2 spec/kitabu/stats_spec.rb
kitabu-2.0.1 spec/kitabu/stats_spec.rb