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