Sha256: ddf9ff37f9b023711890f1946b6741aac5ef4277870be9d8a42e0858828623b0

Contents?: true

Size: 1.63 KB

Versions: 9

Compression:

Stored size: 1.63 KB

Contents

require "acceptance_helper"

describe "User manages triggers" do
  it "handles simple triggers" do
    successfully "rails generate model user name:string upper_name:string"
    successfully "rails generate fx:function uppercase_users_name"
    write_function_definition "uppercase_users_name_v01", <<-EOS
      CREATE OR REPLACE FUNCTION uppercase_users_name()
      RETURNS trigger AS $$
      BEGIN
        NEW.upper_name = UPPER(NEW.name);
        RETURN NEW;
      END;
      $$ LANGUAGE plpgsql;
    EOS
    successfully "rails generate fx:trigger uppercase_users_name table_name:users"
    write_trigger_definition "uppercase_users_name_v01", <<-EOS
      CREATE TRIGGER uppercase_users_name
          BEFORE INSERT ON users
          FOR EACH ROW
          EXECUTE PROCEDURE uppercase_users_name();
    EOS
    successfully "rake db:migrate"

    execute <<-EOS
      INSERT INTO users
      (name, created_at, updated_at)
      VALUES
      ('Bob', NOW(), NOW());
    EOS
    result = execute("SELECT upper_name FROM users WHERE name = 'Bob';")
    expect(result).to eq("upper_name" => "BOB")

    successfully "rails generate fx:trigger uppercase_users_name table_name:users"
    write_trigger_definition "uppercase_users_name_v02", <<-EOS
      CREATE TRIGGER uppercase_users_name
          BEFORE UPDATE ON users
          FOR EACH ROW
          EXECUTE PROCEDURE uppercase_users_name();
    EOS
    successfully "rake db:migrate"
    execute <<-EOS
      UPDATE users
      SET name = 'Alice'
      WHERE id = 1;
    EOS

    result = execute("SELECT upper_name FROM users WHERE name = 'Alice';")
    expect(result).to eq("upper_name" => "ALICE")
  end
end

Version data entries

9 entries across 9 versions & 2 rubygems

Version Path
fx-0.7.0 spec/acceptance/user_manages_triggers_spec.rb
fx-jets-0.6.3s spec/acceptance/user_manages_triggers_spec.rb
fx-0.6.2 spec/acceptance/user_manages_triggers_spec.rb
fx-0.6.1 spec/acceptance/user_manages_triggers_spec.rb
fx-0.6.0 spec/acceptance/user_manages_triggers_spec.rb
fx-0.5.0 spec/acceptance/user_manages_triggers_spec.rb
fx-0.4.0 spec/acceptance/user_manages_triggers_spec.rb
fx-0.3.1 spec/acceptance/user_manages_triggers_spec.rb
fx-0.3.0 spec/acceptance/user_manages_triggers_spec.rb