spec/extensions/postgres/inferrer_spec.rb in rom-sql-0.9.1 vs spec/extensions/postgres/inferrer_spec.rb in rom-sql-1.0.0.beta1
- old
+ new
@@ -16,34 +16,44 @@
Json :json_data
Jsonb :jsonb_data
Decimal :money, null: false
column :tags, "text[]"
column :tag_ids, "bigint[]"
+ column :ip, "inet"
rainbow :color
end
end
+ after do
+ conn.drop_table?(:test_inferrence)
+ end
+
let(:dataset) { :test_inferrence }
let(:schema) { container.relations[dataset].schema }
context 'inferring db-specific attributes' do
before do
dataset = self.dataset
conf.relation(dataset) do
- schema(dataset, infer: true)
+ schema(dataset, infer: true) do
+ attribute :ip, ROM::SQL::Types::String
+ end
end
end
it 'can infer attributes for dataset' do
- expect(schema.attributes).to eql(
- id: ROM::SQL::Types::PG::UUID.meta(name: :id, primary_key: true),
- json_data: ROM::SQL::Types::PG::JSON.optional.meta(name: :json_data),
- jsonb_data: ROM::SQL::Types::PG::JSONB.optional.meta(name: :jsonb_data),
- money: ROM::SQL::Types::Decimal.meta(name: :money),
- tags: ROM::SQL::Types::PG::Array('text').optional.meta(name: :tags),
- tag_ids: ROM::SQL::Types::PG::Array('biging').optional.meta(name: :tag_ids),
- color: ROM::SQL::Types::String.enum(*colors).optional.meta(name: :color)
+ source = container.relations[:test_inferrence].name
+
+ expect(schema.to_h).to eql(
+ id: ROM::SQL::Types::PG::UUID.meta(name: :id, source: source, primary_key: true),
+ json_data: ROM::SQL::Types::PG::JSON.optional.meta(name: :json_data, source: source),
+ jsonb_data: ROM::SQL::Types::PG::JSONB.optional.meta(name: :jsonb_data, source: source),
+ money: ROM::SQL::Types::Decimal.meta(name: :money, source: source),
+ tags: ROM::SQL::Types::PG::Array('text').optional.meta(name: :tags, source: source),
+ tag_ids: ROM::SQL::Types::PG::Array('biging').optional.meta(name: :tag_ids, source: source),
+ color: ROM::SQL::Types::String.enum(*colors).optional.meta(name: :color, source: source),
+ ip: ROM::SQL::Types::String.meta(name: :ip, source: source)
)
end
end
end