Merge pull request #164 from corgibytes/has_many_issue
Has many relationships are not working correctly
This commit is contained in:
commit
8d30ba5152
51
features/admin/content_types/has_many.feature
Normal file
51
features/admin/content_types/has_many.feature
Normal file
@ -0,0 +1,51 @@
|
||||
Feature: Create and manage has many relationships
|
||||
In order to work with two associated models together
|
||||
As an administrator
|
||||
I want to set up and manage a has many relationship
|
||||
|
||||
Background:
|
||||
Given I have the site: "test site" set up
|
||||
And I have a custom model named "Projects" with
|
||||
| label | kind | required | target |
|
||||
| Name | string | true | |
|
||||
| Description | text | false | |
|
||||
And I have a custom model named "Clients" with
|
||||
| label | kind | required | target |
|
||||
| Name | string | true | |
|
||||
| Description | string | false | |
|
||||
| Projects | has_many | false | Projects |
|
||||
And I have entries for "Clients" with
|
||||
| name | description |
|
||||
| Alpha, Inc | Description for Alpha, Inc |
|
||||
| Beta, Inc | Description for Beta, Inc |
|
||||
| Gamma, Inc | Description for Gamma, Inc |
|
||||
And I have entries for "Projects" with
|
||||
| name | description |
|
||||
| Fun project | Description for the fun one |
|
||||
| Boring project | Description for the boring one |
|
||||
|
||||
And I am an authenticated user
|
||||
|
||||
@javascript
|
||||
Scenario: I view a client without any projects
|
||||
When I go to the "Clients" model list page
|
||||
And I follow "Alpha, Inc"
|
||||
And I wait until the has many selector is visible
|
||||
Then I should see "Empty" within the list of items
|
||||
|
||||
@javascript
|
||||
Scenario: I add a project to a client
|
||||
When I go to the "Clients" model list page
|
||||
And I follow "Beta, Inc"
|
||||
And I wait until the has many selector is visible
|
||||
Then "Fun project" should be an option for "label"
|
||||
And I press "+ add"
|
||||
When I press "Save"
|
||||
And I wait until the has many selector is visible
|
||||
Then I should see "Fun project" within the list of added items
|
||||
And I should not see "Empty" within the list of items
|
||||
When I go to the "Clients" model list page
|
||||
And I follow "Beta, Inc"
|
||||
And I wait until the has many selector is visible
|
||||
Then I should see "Fun project" within the list of added items
|
||||
And I should not see "Empty" within the list of items
|
@ -36,26 +36,37 @@ Scenario: I do not see the "Add Item" button for new parent
|
||||
Scenario: I attach already created items for an existing parent and save it
|
||||
When I go to the "Clients" model list page
|
||||
And I follow "Apple Inc"
|
||||
And I wait until ".has-many-selector ul li.template" is visible
|
||||
And I wait until the has many selector is visible
|
||||
Then "My sexy project" should be an option for "label"
|
||||
When I select "My sexy project" from "label"
|
||||
And I press "+ add"
|
||||
And "My sexy project" should not be an option for "label"
|
||||
When I press "Save"
|
||||
And I wait until ".has-many-selector ul li.template" is visible
|
||||
And I wait until the has many selector is visible
|
||||
Then "My sexy project" should not be an option for "label"
|
||||
When I go to the "Clients" model list page
|
||||
And I follow "Apple Inc"
|
||||
And I wait until the has many selector is visible
|
||||
Then "My sexy project" should not be an option for "label"
|
||||
And I should not see "Empty" within the list of items
|
||||
|
||||
|
||||
@javascript
|
||||
Scenario: I create a new item and attach it
|
||||
When I go to the "Clients" model list page
|
||||
And I follow "Apple Inc"
|
||||
And I wait until ".has-many-selector ul li.template" is visible
|
||||
And I wait until the has many selector is visible
|
||||
And I press "+ add"
|
||||
Then I should see "Apple Inc » Projects — new item"
|
||||
And I should not see "Client" within the main form
|
||||
When I fill in "Name" with "iPad"
|
||||
And I press "Create"
|
||||
Then I should see "Content was successfully created."
|
||||
When I wait until ".has-many-selector ul li.template" is visible
|
||||
When I wait until the has many selector is visible
|
||||
Then I should see "iPad"
|
||||
And "iPad" should not be an option for "label"
|
||||
When I go to the "Clients" model list page
|
||||
And I follow "Apple Inc"
|
||||
And I wait until the has many selector is visible
|
||||
Then "iPad" should not be an option for "label"
|
||||
And I should not see "Empty" within the list of items
|
||||
|
@ -10,6 +10,10 @@ When /^I wait until "([^"]*)" is visible$/ do |selector|
|
||||
page.has_css?("#{selector}", :visible => true)
|
||||
end
|
||||
|
||||
When /^I wait until ([^"]*) is visible$/ do |locator|
|
||||
page.has_css?(selector_for(locator), :visible => true)
|
||||
end
|
||||
|
||||
Then /^"([^"]*)" should( not)? be an option for "([^"]*)"(?: within "([^\"]*)")?$/ do |value, negate, field, selector|
|
||||
with_scope(selector) do
|
||||
expectation = negate ? :should_not : :should
|
||||
|
@ -1,7 +1,6 @@
|
||||
# http://mislav.uniqpath.com/2010/09/cuking-it-right/
|
||||
|
||||
{
|
||||
|
||||
# 'as a movie title in the results' => 'ol.movies h1',
|
||||
# 'in a button' => 'button, input[type=submit]',
|
||||
# 'in the navigation' => 'nav'
|
||||
|
@ -14,6 +14,15 @@ module HtmlSelectorsHelpers
|
||||
when "the main form"
|
||||
"form.formtastic"
|
||||
|
||||
when "the list of added items"
|
||||
".has-many-selector li.item.added"
|
||||
|
||||
when "the list of items"
|
||||
".has-many-selector"
|
||||
|
||||
when "the has many selector"
|
||||
".has-many-selector ul li.template"
|
||||
|
||||
# Add more mappings here.
|
||||
# Here is an example that pulls values out of the Regexp:
|
||||
#
|
||||
|
Loading…
Reference in New Issue
Block a user