1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- Feature: Specifying Actions
- Specifying which actions to allow on my resource
- Scenario: Only creating the index action
- Given a configuration of:
- """
- ActiveAdmin.register Post do
- actions :index
- index do
- column do |post|
- link_to "View", admin_post_path(post)
- end
- end
- end
- """
- And I am logged in
- And a post with the title "Hello World" exists
- When I am on the index page for posts
- Then an "AbstractController::ActionNotFound" exception should be raised when I follow "View"
- Scenario: Specify a custom collection action with template
- Given a configuration of:
- """
- ActiveAdmin.register Post do
- action_item(:only => :index) do
- link_to('Import Posts', import_admin_posts_path)
- end
- collection_action :import
- end
- """
- Given "app/views/admin/posts/import.html.erb" contains:
- """
- <p>We are currently working on this feature...</p>
- """
- And I am logged in
- When I am on the index page for posts
- And I follow "Import"
- Then I should see "We are currently working on this feature"
- Scenario: Specify a custom member action with template
- Given a configuration of:
- """
- ActiveAdmin.register Post do
- action_item(:only => :show) do
- link_to('Review', review_admin_post_path)
- end
- member_action :review do
- @post = Post.find(params[:id])
- end
- end
- """
- Given "app/views/admin/posts/review.html.erb" contains:
- """
- <h1>Review: <%= @post.title %></h1>
- """
- And I am logged in
- And a post with the title "Hello World" exists
- When I am on the index page for posts
- And I follow "View"
- And I follow "Review"
- Then I should see "Review: Hello World"
- And I should see the page title "Review"
- And I should see the Active Admin layout
- Scenario: Specify a custom member action with template using arb
- Given a configuration of:
- """
- ActiveAdmin.register Post do
- action_item(:only => :show) do
- link_to('Review', review_admin_post_path)
- end
- member_action :review do
- @post = Post.find(params[:id])
- end
- end
- """
- Given "app/views/admin/posts/review.html.arb" contains:
- """
- h1 "Review: #{@post.title}"
- """
- And I am logged in
- And a post with the title "Hello World" exists
- When I am on the index page for posts
- And I follow "View"
- And I follow "Review"
- Then I should see "Review: Hello World"
- And I should see the page title "Review"
- And I should see the Active Admin layout
|