Sha256: 52e78ec340cffb34d5ea0ba02dd52414e0a0c189641627d2d51314a99341ca41

Contents?: true

Size: 1.69 KB

Versions: 3

Compression:

Stored size: 1.69 KB

Contents

require 'spec_helper'

describe 'transformations' do  

  before(:each) do
    SpecSeeds.setup_mysql
  end

  it "can run a native transformation" do
    plan = SpecPlan.new
    @rows = []

    raw = SpecClient.mysql('forklift_test_destination')

    plan.do! {
      source      = plan.connections[:mysql][:forklift_test_source_a]
      destination = plan.connections[:mysql][:forklift_test_destination]
      source.read('select * from `users`') {|data| destination.write(data, 'users') }

      expect( destination.columns("users").include?("full_name") ).to eql false

      transformation_file = "#{File.dirname(__FILE__)}/../template/spec_user_transformation.sql"
      destination.exec!(transformation_file)

      expect( destination.columns("users").include?("full_name") ).to eql true
    }
    plan.disconnect!
  end

  it "can run a ruby transformation" do
    plan = SpecPlan.new
    @rows = []

    raw = SpecClient.mysql('forklift_test_destination')

    plan.do! {
      source      = plan.connections[:mysql][:forklift_test_source_a]
      destination = plan.connections[:mysql][:forklift_test_destination]
      source.read('select * from `users`') {|data| destination.write(data, 'users') }

      expect( destination.columns("users").include?("full_name") ).to eql false

      transformation_file = "#{File.dirname(__FILE__)}/../template/spec_user_transformation.rb"
      destination.exec!(transformation_file, {prefix: 'my_prefix' })

      expect( destination.columns("users").include?("full_name") ).to eql true

      data = destination.read('select * from `users` where email="evan@example.com"')
      expect( data.first[:full_name] ).to eql 'my_prefix Evan T'
    }
    plan.disconnect!
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
forklift_etl-1.2.2 spec/integration/transformations_spec.rb
forklift_etl-1.2.1 spec/integration/transformations_spec.rb
forklift_etl-1.2.0 spec/integration/transformations_spec.rb