Sha256: d6affa5ffcd5e01eff0bb503a784e37368aa9620e10dccadcdd441e41da3d1b9

Contents?: true

Size: 1.81 KB

Versions: 1

Compression:

Stored size: 1.81 KB

Contents

require 'spec_helper'

module MongoProfiler
  describe Caller do
    it 'creates a profile' do
      test = TestModel.create(name: 'Pablo')

      expect(TestModel.where(name: 'Pablo').first.name).to eq 'Pablo'

      expect(MongoProfiler::ProfileGroup.count).to eq 1

      group = MongoProfiler::ProfileGroup.first
      expect(group.name).to eq 'Undefined group name'

      expect(MongoProfiler::Profile.count).to eq 1

      profile = MongoProfiler::Profile.first

      expect(profile.attributes).to include('profile_group_id' => group.id,
                                            'file' => __FILE__,
                                            'command_database' => 'mongo_profiler_test',
                                            'command_collection' => 'test_models')

      expect(JSON.parse(profile.command)).to eq('$query' => { 'name' => 'Pablo' }, '$orderby' => { '_id' => 1 })
    end

    it 'does not duplicate profiles' do
      test = TestModel.create

      # To guarantee the same line number
      TestModel.where(name: 'Pablo').first || TestModel.where(name: 'Pablo').first

      expect(MongoProfiler::ProfileGroup.count).to eq 1
      expect(MongoProfiler::Profile.count).to eq 1
    end

    it 'creates a new profile if the query keys change' do
      test = TestModel.create

      TestModel.where(name: 'Pablo').first
      TestModel.where(last_name: 'Cantero').first

      expect(MongoProfiler::ProfileGroup.count).to eq 1
      expect(MongoProfiler::Profile.count).to eq 2
    end

    it 'uses supplied group name' do
      MongoProfiler.current_group_name = 'Test'

      test = TestModel.create(name: 'Pablo')

      TestModel.where(name: 'Pablo').first

      expect(MongoProfiler::ProfileGroup.count).to eq 1

      group = MongoProfiler::ProfileGroup.first
      expect(group.name).to eq 'Test'
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mongo_profiler-0.0.2 spec/mongo_profiler/models/profile_spec.rb