Sha256: 490076ddf04a37910e7863dd37318feaf37c7ff54bd5bcb08bdb6cadbe819ef7

Contents?: true

Size: 1.75 KB

Versions: 1

Compression:

Stored size: 1.75 KB

Contents

require "test_helper"

class UpdatingPropersTest < ActionDispatch::IntegrationTest
  include Capybara::DSL

  attr_reader :project, :user


  setup do
    Capybara.reset_sessions!
    visit "/users/sign_in"
    fill_in "Username or Email", with: "bob@example.com"
    fill_in "Password", with: "password"
    click_button "Sign in"
  end

  teardown do
    Houston.view.reset!
  end


  context "A runtime-defined field for projects" do
    setup do
      @project = FactoryGirl.create(:project)

      Houston.view["edit_project"].add_field("Test Field") do |f|
        f.text_field "test.field", id: "__props_test_field"
      end
    end

    should "be rendered on the Edit Project view" do
      visit "projects/#{project.slug}/edit"

      assert page.has_selector? 'input[type="text"][name="project[props][test.field]"]'
    end

    should "be updated if changed on the Edit Project view" do
      visit "projects/#{project.slug}/edit"
      fill_in "Test Field", with: "NEW VALUE"
      click_button "Update Project"

      assert_equal "NEW VALUE", project.reload.props["test.field"]
    end
  end


  context "A runtime-defined field for users" do
    setup do
      @user = users(:boblail)

      Houston.view["edit_user"].add_field("Test Field") do |f|
        f.text_field "test.field", id: "__props_test_field"
      end
    end

    should "be rendered on the Edit Project view" do
      visit "users/#{user.id}/edit"

      assert page.has_selector? 'input[type="text"][name="user[props][test.field]"]'
    end

    should "be updated if changed on the Edit Project view" do
      visit "users/#{user.id}/edit"
      fill_in "Test Field", with: "NEW VALUE"
      click_button "Update User"

      assert_equal "NEW VALUE", user.reload.props["test.field"]
    end
  end


end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
houston-core-0.9.0.rc1 test/acceptance/updating_props_test.rb