spec/tests/schema_spec.rb in torque-postgresql-2.4.1 vs spec/tests/schema_spec.rb in torque-postgresql-2.4.2
- old
+ new
@@ -38,10 +38,30 @@
expect(connection.schema_exists?(:legacy, filtered: false)).to be_truthy
connection.schemas_whitelist.push('legacy')
expect(connection.schema_exists?(:legacy)).to be_truthy
end
+
+ context 'reverting' do
+ let(:migration) { ActiveRecord::Migration::Current.new('Testing') }
+
+ before { connection.create_schema(:legacy) }
+
+ it 'reverts the creation of a schema' do
+ expect(connection.schema_exists?(:legacy, filtered: false)).to be_truthy
+ migration.revert { migration.connection.create_schema(:legacy) }
+ expect(connection.schema_exists?(:legacy, filtered: false)).to be_falsey
+ end
+
+ it 'reverts the creation of a table' do
+ connection.create_table(:users, schema: :legacy) { |t| t.string(:name) }
+
+ expect(connection.table_exists?('legacy.users')).to be_truthy
+ migration.revert { migration.connection.create_table(:users, schema: :legacy) }
+ expect(connection.table_exists?('legacy.users')).to be_falsey
+ end
+ end
end
context 'on schema' do
let(:dump_result) do
ActiveRecord::SchemaDumper.dump(connection, (dump_result = StringIO.new))
@@ -84,18 +104,31 @@
end
end
context 'on relation' do
let(:model) { Internal::User }
+ let(:table_name) { Torque::PostgreSQL::TableName.new(model, 'users') }
it 'adds the schema to the query' do
+ model.reset_table_name
+ expect(table_name.to_s).to eq('internal.users')
expect(model.all.to_sql).to match(/FROM "internal"."users"/)
end
it 'can load the schema from the module' do
allow(Internal).to receive(:schema).and_return('internal')
allow(model).to receive(:schema).and_return(nil)
+ model.reset_table_name
+ expect(table_name.to_s).to eq('internal.users')
expect(model.all.to_sql).to match(/FROM "internal"."users"/)
+ end
+
+ it 'does not change anything if the model has not configured a schema' do
+ allow(model).to receive(:schema).and_return(nil)
+
+ model.reset_table_name
+ expect(table_name.to_s).to eq('users')
+ expect(model.all.to_sql).to match(/FROM "users"/)
end
end
end