Sha256: 168772a8e3a6b4a8b89b65c75c97128cc437cfeff1603cc58b87cc953dbc6768
Contents?: true
Size: 1.99 KB
Versions: 1
Compression:
Stored size: 1.99 KB
Contents
require 'spec_helper' describe 'rake tasks' do def rake(task_name, cache_classes: false) system(*%W[ rake -f spec/internal/Rakefile #{task_name} CACHE_CLASSES=#{cache_classes} ]) raise unless $?.success? end describe 'db:migrate' do def view_names ActiveRecord::Base.connection.select_values(<<~SQL.squish) SELECT table_name FROM information_schema.views WHERE table_schema = 'public' SQL end it 'does not create any database views' do expect(view_names).to be_empty rake 'db:migrate' expect(view_names).to be_empty end it 'creates database views when classes are cached (production mode)' do expect(view_names).to be_empty rake 'db:migrate', cache_classes: true expect(view_names).to_not be_empty end context 'with unregistered view' do before do ActiveRecordViews.create_view ActiveRecord::Base.connection, 'old_view', 'OldView', 'SELECT 42 AS id' end it 'does not drop unregistered views' do expect(view_names).to include 'old_view' rake 'db:migrate' expect(view_names).to include 'old_view' end it 'drops unregistered views when classes are cached (production mode)' do expect(view_names).to include 'old_view' rake 'db:migrate', cache_classes: true expect(view_names).to_not include 'old_view' end end end describe 'db:structure:dump' do it 'copies over activerecord_views data' do ActiveRecordViews.create_view ActiveRecord::Base.connection, 'test_view', 'TestView', 'SELECT 1' FileUtils.rm_f 'spec/internal/db/structure.sql' rake 'db:structure:dump' sql = File.read('spec/internal/db/structure.sql') FileUtils.rm_f 'spec/internal/db/structure.sql' expect(sql).to match(/COPY public\.active_record_views.+test_view\tTestView/m) expect(sql).to match(/UPDATE public\.active_record_views SET refreshed_at = NULL/) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
activerecord_views-0.0.18 | spec/tasks_spec.rb |