Sha256: e43e966fe83ee5967ab30eab328756fa10a3edb4ecec33609a5ab0c9bde0aa63

Contents?: true

Size: 1.33 KB

Versions: 4

Compression:

Stored size: 1.33 KB

Contents

require 'spec_helper'

describe Snuffle::LatentObject do

  let(:program_1) { Snuffle::SourceFile.new(path_to_file: "spec/fixtures/program_1.rb") }
  let(:program_2) { Snuffle::SourceFile.new(path_to_file: "spec/fixtures/latent_object_fixture.rb") }

  describe ".from" do

    let(:results) { Snuffle::LatentObject.from(program_2.nodes) }

    it "returns an array of LatentObject instances" do
      expect(results.first.class.name).to eq "Snuffle::LatentObject"
    end

    it "returns instances with object candidates" do
      expect(results.first.object_candidate).to eq "user"
    end

    it "returns instances with source methods" do
      expect(results.first.source_methods).to eq ["user_name", "user_address", "user_email"]
    end

  end

  describe ".potential_objects_with_methods" do

    let(:results_set_1) { Snuffle::LatentObject.potential_objects_with_methods(program_1.nodes) }
    let(:results_set_2) { Snuffle::LatentObject.potential_objects_with_methods(program_2.nodes) }

    it "finds repeated words" do
      expect(results_set_2.keys).to eq(["user"])
    end

    it "finds words by stem" do
      expect(results_set_1['helper']).to eq(["helpers", "helper"])
    end

    it "finds methods that repeated words appear in" do
      expect(results_set_2['user']).to eq(["user_name", "user_address", "user_email"])
    end

  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
snuffle-0.14.2 spec/snuffle/latent_object_spec.rb
snuffle-0.14.1 spec/snuffle/latent_object_spec.rb
snuffle-0.14.0 spec/snuffle/latent_object_spec.rb
snuffle-0.13.0 spec/snuffle/latent_object_spec.rb