Sha256: e18e4f124933ab21c0b3daf367b291937a56de57902bd7efc7514c7420437616

Contents?: true

Size: 1.68 KB

Versions: 4

Compression:

Stored size: 1.68 KB

Contents

# encoding: utf-8
require "spec_helper"

module Corrector
  describe Parse do

    describe ".new" do

      before do
        create :prefix, from: "КИЛО",   to: "К",    scope: "UNITS"
        create :word,   from: "МЕТРОВ", to: "М",    scope: "UNITS"
        create :word,   from: "МЕТРА",  to: "М",    scope: "UNITS"
        create :word,   from: "ЧАС",    to: "Ч",    scope: "UNITS"
        create :phrase, from: "КМ В Ч", to: "КМ/Ч", scope: "UNITS"
      end

      specify do
        expect(Parse.new "Километров/час", scope: "UNITS").to eq "КМ/Ч"
      end

      specify do
        expect(Parse.new "Километра в час", scope: "UNITS").to eq "КМ/Ч"
      end

      specify do
        expect(Parse.new "3 километра", scope: "UNITS").to eq "3 КМ"
      end

      specify do
        expect(Parse.new "100 метров/час", scope: "UNITS").to eq "100 М/Ч"
      end

      it "caches db requests in a same scope", :caching do
        str = "Километров/час"
        Parse.new str, scope: "UNITS"
        [Word, Prefix, Phrase]
          .each { |klass| expect(klass).not_to receive(:scan) }
        Parse.new str, scope: "UNITS"
      end

      it "doesn't use cache from another scope", :caching do
        str = "Километров/час"
        Parse.new str, scope: "UNITS"
        [Word, Prefix, Phrase]
          .each { |klass| expect(klass).to receive(:scan).at_least(:once) }
        Parse.new str, scope: "CURRENCIES"
      end
    end

    describe "#source" do

      it "stores a source" do
        source = "abcd"
        expect(Parse.new(source, scope: "UNITS").source).to eq source
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
corrector-0.1.0 spec/services/corrector/parse_spec.rb
corrector-0.0.3 spec/services/corrector/parse_spec.rb
corrector-0.0.2 spec/services/corrector/parse_spec.rb
corrector-0.0.1 spec/services/corrector/parse_spec.rb