selections 0.0.1 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +18 -0
- data/CHANGELOG.md +3 -0
- data/Gemfile +4 -0
- data/{MIT-LICENSE → LICENSE.txt} +4 -2
- data/README.md +237 -0
- data/Rakefile +3 -29
- data/lib/selections.rb +22 -6
- data/lib/selections/belongs_to_selection.rb +20 -0
- data/lib/selections/form_builder_extensions.rb +86 -0
- data/lib/selections/selectable.rb +125 -0
- data/lib/selections/version.rb +1 -1
- data/selections.gemspec +38 -0
- data/spec/selections/selectable_spec.rb +220 -0
- data/spec/selections/selections_tag_spec.rb +203 -0
- data/spec/spec_helper.rb +30 -21
- metadata +99 -177
- data/README.rdoc +0 -3
- data/app/assets/javascripts/selections/application.js +0 -9
- data/app/assets/javascripts/selections/selections.js +0 -2
- data/app/assets/stylesheets/scaffold.css +0 -56
- data/app/assets/stylesheets/selections/application.css +0 -7
- data/app/assets/stylesheets/selections/selections.css +0 -4
- data/app/controllers/selections/application_controller.rb +0 -4
- data/app/controllers/selections/selections_controller.rb +0 -45
- data/app/helpers/selections/application_helper.rb +0 -4
- data/app/helpers/selections/selectors_helper.rb +0 -4
- data/app/models/selections/selection.rb +0 -83
- data/app/views/layouts/selections/application.html.erb +0 -1
- data/app/views/selections/selections/_form.html.erb +0 -41
- data/app/views/selections/selections/edit.html.erb +0 -6
- data/app/views/selections/selections/index.html.erb +0 -33
- data/app/views/selections/selections/new.html.erb +0 -5
- data/app/views/selections/selections/show.html.erb +0 -35
- data/config/initializers/selections.rb +0 -1
- data/config/routes.rb +0 -5
- data/db/migrate/20120114024459_create_selections_selections.rb +0 -15
- data/lib/selections/engine.rb +0 -5
- data/lib/selections/selection_select.rb +0 -24
- data/lib/tasks/selections_tasks.rake +0 -4
- data/spec/controllers/companies_controller_spec.rb +0 -10
- data/spec/controllers/selections/selections_controller_spec.rb +0 -165
- data/spec/dummy/Rakefile +0 -7
- data/spec/dummy/app/assets/javascripts/application.js +0 -9
- data/spec/dummy/app/assets/javascripts/companies.js +0 -2
- data/spec/dummy/app/assets/stylesheets/application.css +0 -7
- data/spec/dummy/app/assets/stylesheets/companies.css +0 -4
- data/spec/dummy/app/assets/stylesheets/scaffold.css +0 -56
- data/spec/dummy/app/controllers/application_controller.rb +0 -2
- data/spec/dummy/app/controllers/companies_controller.rb +0 -83
- data/spec/dummy/app/helpers/application_helper.rb +0 -2
- data/spec/dummy/app/helpers/companies_helper.rb +0 -2
- data/spec/dummy/app/models/company.rb +0 -7
- data/spec/dummy/app/views/companies/_form.html.erb +0 -3
- data/spec/dummy/app/views/companies/edit.html.erb +0 -4
- data/spec/dummy/app/views/companies/index.html.erb +0 -27
- data/spec/dummy/app/views/companies/new.html.erb +0 -5
- data/spec/dummy/app/views/companies/show.html.erb +0 -20
- data/spec/dummy/app/views/layouts/application.html.erb +0 -11
- data/spec/dummy/config.ru +0 -4
- data/spec/dummy/config/application.rb +0 -45
- data/spec/dummy/config/boot.rb +0 -10
- data/spec/dummy/config/database.yml +0 -25
- data/spec/dummy/config/environment.rb +0 -5
- data/spec/dummy/config/environments/development.rb +0 -30
- data/spec/dummy/config/environments/production.rb +0 -60
- data/spec/dummy/config/environments/test.rb +0 -42
- data/spec/dummy/config/initializers/backtrace_silencers.rb +0 -7
- data/spec/dummy/config/initializers/inflections.rb +0 -10
- data/spec/dummy/config/initializers/mime_types.rb +0 -5
- data/spec/dummy/config/initializers/secret_token.rb +0 -7
- data/spec/dummy/config/initializers/session_store.rb +0 -8
- data/spec/dummy/config/initializers/wrap_parameters.rb +0 -14
- data/spec/dummy/config/locales/en.yml +0 -5
- data/spec/dummy/config/routes.rb +0 -6
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/migrate/20120114125226_create_selections_selections.rb +0 -15
- data/spec/dummy/db/migrate/20120115055119_create_companies.rb +0 -12
- data/spec/dummy/db/schema.rb +0 -38
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +0 -94
- data/spec/dummy/log/test.log +0 -26360
- data/spec/dummy/public/404.html +0 -26
- data/spec/dummy/public/422.html +0 -26
- data/spec/dummy/public/500.html +0 -26
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/script/rails +0 -6
- data/spec/helpers/selections/selections_helper_spec.rb +0 -15
- data/spec/models/company_spec.rb +0 -7
- data/spec/models/selections/selection_spec.rb +0 -219
- data/spec/routing/selections/selections_routing_spec.rb +0 -35
- data/spec/support/controller_route_fix.rb +0 -33
- data/spec/support/factories/company_factory.rb +0 -5
- data/spec/support/factories/selection_factory.rb +0 -5
- data/spec/views/companies/edit.html.erb_spec.rb +0 -76
- data/spec/views/companies/new.html.erb_spec.rb +0 -78
- data/spec/views/selections/selections/edit.html.erb_spec.rb +0 -28
- data/spec/views/selections/selections/index.html.erb_spec.rb +0 -40
- data/spec/views/selections/selections/new.html.erb_spec.rb +0 -28
- data/spec/views/selections/selections/show.html.erb_spec.rb +0 -30
@@ -1,7 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* This is a manifest file that'll automatically include all the stylesheets available in this directory
|
3
|
-
* and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
|
4
|
-
* the top of the compiled file, but it's generally better to create a new file per style scope.
|
5
|
-
*= require_self
|
6
|
-
*= require_tree .
|
7
|
-
*/
|
@@ -1,45 +0,0 @@
|
|
1
|
-
module Selections
|
2
|
-
class SelectionsController < ApplicationController
|
3
|
-
def index
|
4
|
-
@selections = Selection.all
|
5
|
-
end
|
6
|
-
|
7
|
-
def show
|
8
|
-
@selection = Selection.find(params[:id])
|
9
|
-
end
|
10
|
-
|
11
|
-
def new
|
12
|
-
@selection = Selection.new
|
13
|
-
end
|
14
|
-
|
15
|
-
def edit
|
16
|
-
@selection = Selection.find(params[:id])
|
17
|
-
end
|
18
|
-
|
19
|
-
def create
|
20
|
-
@selection = Selection.new(params[:selection])
|
21
|
-
if @selection.save
|
22
|
-
redirect_to @selection, notice: 'Selection was successfully created.'
|
23
|
-
else
|
24
|
-
render action: "new"
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
def update
|
29
|
-
@selection = Selection.find(params[:id])
|
30
|
-
|
31
|
-
if @selection.update_attributes(params[:selection])
|
32
|
-
redirect_to @selection, notice: 'Selection was successfully updated.'
|
33
|
-
else
|
34
|
-
render action: "edit"
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
def destroy
|
39
|
-
@selection = Selection.find(params[:id])
|
40
|
-
@selection.destroy
|
41
|
-
|
42
|
-
redirect_to selections_url
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
@@ -1,83 +0,0 @@
|
|
1
|
-
module Selections
|
2
|
-
class Selection < ActiveRecord::Base
|
3
|
-
|
4
|
-
VERSION = "0.1"
|
5
|
-
HIDDEN_POSITION = 999888777
|
6
|
-
|
7
|
-
acts_as_tree
|
8
|
-
|
9
|
-
validate :name, :existence =>true
|
10
|
-
validates_presence_of :name
|
11
|
-
validates_uniqueness_of :name, :scope => :parent_id
|
12
|
-
validates_uniqueness_of :system_code, :scope => :archived_at
|
13
|
-
validates_format_of :system_code, :with => /^[a-z][a-zA-Z_0-9]*$/, :message => "can only contain alphanumeric characters and '_', not spaces"
|
14
|
-
|
15
|
-
before_validation :auto_gen_system_code, :on => :create
|
16
|
-
before_validation :disable_system_code_change, :on => :update
|
17
|
-
after_validation :check_defaults
|
18
|
-
|
19
|
-
default_scope :order => [:position_value, :name]
|
20
|
-
|
21
|
-
scope :filter_archived_except_selected, lambda { |selected_id| {:conditions => ["archived_at is ? or id = ?", nil, selected_id]} }
|
22
|
-
|
23
|
-
def to_s
|
24
|
-
name.to_s
|
25
|
-
end
|
26
|
-
|
27
|
-
def position=(value)
|
28
|
-
self.position_value = value || HIDDEN_POSITION
|
29
|
-
end
|
30
|
-
|
31
|
-
def disable_system_code_change
|
32
|
-
errors.add(:system_code, "cannot be changed") if system_code_changed?
|
33
|
-
end
|
34
|
-
|
35
|
-
def position
|
36
|
-
position_value unless position_value == HIDDEN_POSITION
|
37
|
-
end
|
38
|
-
|
39
|
-
def auto_gen_system_code
|
40
|
-
unless system_code
|
41
|
-
if parent
|
42
|
-
self.system_code = parent.system_code + "_" + name.to_s.underscore.split(" ").join("_").singularize.underscore
|
43
|
-
else
|
44
|
-
self.system_code = name.to_s.underscore.split(" ").join("_").singularize.underscore
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
def check_defaults
|
50
|
-
siblings_with_default_set.update_attribute(:is_default, false) if self.parent && siblings_with_default_set && self.is_default
|
51
|
-
self.is_default = false if archived
|
52
|
-
end
|
53
|
-
|
54
|
-
def siblings_with_default_set
|
55
|
-
self.parent.children.where(:is_default => true).where("id != #{self.id.to_i}").first
|
56
|
-
end
|
57
|
-
|
58
|
-
def
|
59
|
-
self.method_missing lookup_code, *options
|
60
|
-
if (scope = Selection.where(:system_code => lookup_code.to_s)) && scope.exists?
|
61
|
-
scope.first
|
62
|
-
elsif (scope = Selection.where(:system_code => lookup_code.to_s.singularize)) && scope.exists?
|
63
|
-
scope.first.children
|
64
|
-
else
|
65
|
-
super
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
def archived
|
70
|
-
!!archived_at
|
71
|
-
end
|
72
|
-
|
73
|
-
def archived=(archived_set)
|
74
|
-
if archived_set
|
75
|
-
self.archived_at = Time.now unless archived_at
|
76
|
-
else
|
77
|
-
self.archived_at = nil
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
@@ -1 +0,0 @@
|
|
1
|
-
<%= yield %>
|
@@ -1,41 +0,0 @@
|
|
1
|
-
<%= form_for(@selection) do |f| %>
|
2
|
-
<% if @selection.errors.any? %>
|
3
|
-
<div id="error_explanation">
|
4
|
-
<h2><%= pluralize(@selection.errors.count, "error") %> prohibited this selection from being saved:</h2>
|
5
|
-
|
6
|
-
<ul>
|
7
|
-
<% @selection.errors.full_messages.each do |msg| %>
|
8
|
-
<li><%= msg %></li>
|
9
|
-
<% end %>
|
10
|
-
</ul>
|
11
|
-
</div>
|
12
|
-
<% end %>
|
13
|
-
|
14
|
-
<div class="field">
|
15
|
-
<%= f.label :name %><br />
|
16
|
-
<%= f.text_field :name %>
|
17
|
-
</div>
|
18
|
-
<div class="field">
|
19
|
-
<%= f.label :parent_id %><br />
|
20
|
-
<%= f.number_field :parent_id %>
|
21
|
-
</div>
|
22
|
-
<div class="field">
|
23
|
-
<%= f.label :system_code %><br />
|
24
|
-
<%= f.text_field :system_code %>
|
25
|
-
</div>
|
26
|
-
<div class="field">
|
27
|
-
<%= f.label :position %><br />
|
28
|
-
<%= f.number_field :position %>
|
29
|
-
</div>
|
30
|
-
<div class="field">
|
31
|
-
<%= f.label :is_default %><br />
|
32
|
-
<%= f.check_box :is_default %>
|
33
|
-
</div>
|
34
|
-
<div class="field">
|
35
|
-
<%= f.label :is_system %><br />
|
36
|
-
<%= f.check_box :is_system %>
|
37
|
-
</div>
|
38
|
-
<div class="actions">
|
39
|
-
<%= f.submit %>
|
40
|
-
</div>
|
41
|
-
<% end %>
|
@@ -1,33 +0,0 @@
|
|
1
|
-
<h1>Listing selections</h1>
|
2
|
-
|
3
|
-
<table>
|
4
|
-
<tr>
|
5
|
-
<th>Name</th>
|
6
|
-
<th>Parent</th>
|
7
|
-
<th>System code</th>
|
8
|
-
<th>Position</th>
|
9
|
-
<th>Is default</th>
|
10
|
-
<th>Is system</th>
|
11
|
-
<th></th>
|
12
|
-
<th></th>
|
13
|
-
<th></th>
|
14
|
-
</tr>
|
15
|
-
|
16
|
-
<% @selections.each do |selection| %>
|
17
|
-
<tr>
|
18
|
-
<td><%= selection.name %></td>
|
19
|
-
<td><%= selection.parent_id %></td>
|
20
|
-
<td><%= selection.system_code %></td>
|
21
|
-
<td><%= selection.position %></td>
|
22
|
-
<td><%= selection.is_default %></td>
|
23
|
-
<td><%= selection.is_system %></td>
|
24
|
-
<td><%= link_to 'Show', selection %></td>
|
25
|
-
<td><%= link_to 'Edit', edit_selection_path(selection) %></td>
|
26
|
-
<td><%= link_to 'Destroy', selection, confirm: 'Are you sure?', method: :delete %></td>
|
27
|
-
</tr>
|
28
|
-
<% end %>
|
29
|
-
</table>
|
30
|
-
|
31
|
-
<br />
|
32
|
-
|
33
|
-
<%= link_to 'New Selection', new_selection_path %>
|
@@ -1,35 +0,0 @@
|
|
1
|
-
<p id="notice"><%= notice %></p>
|
2
|
-
|
3
|
-
<p>
|
4
|
-
<b>Name:</b>
|
5
|
-
<%= @selection.name %>
|
6
|
-
</p>
|
7
|
-
|
8
|
-
<p>
|
9
|
-
<b>Parent:</b>
|
10
|
-
<%= @selection.parent_id %>
|
11
|
-
</p>
|
12
|
-
|
13
|
-
<p>
|
14
|
-
<b>System code:</b>
|
15
|
-
<%= @selection.system_code %>
|
16
|
-
</p>
|
17
|
-
|
18
|
-
<p>
|
19
|
-
<b>Position:</b>
|
20
|
-
<%= @selection.position %>
|
21
|
-
</p>
|
22
|
-
|
23
|
-
<p>
|
24
|
-
<b>Is default:</b>
|
25
|
-
<%= @selection.is_default %>
|
26
|
-
</p>
|
27
|
-
|
28
|
-
<p>
|
29
|
-
<b>Is system:</b>
|
30
|
-
<%= @selection.is_system %>
|
31
|
-
</p>
|
32
|
-
|
33
|
-
|
34
|
-
<%= link_to 'Edit', edit_selection_path(@selection) %> |
|
35
|
-
<%= link_to 'Back', selections_path %>
|
@@ -1 +0,0 @@
|
|
1
|
-
#ApplicationController.helper 'selections/selectors'
|
data/config/routes.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
class CreateSelectionsSelections < ActiveRecord::Migration
|
2
|
-
def change
|
3
|
-
create_table :selections_selections do |t|
|
4
|
-
t.string :name
|
5
|
-
t.integer :parent_id
|
6
|
-
t.string :system_code
|
7
|
-
t.integer :position_value, :default => Selections::Selection::HIDDEN_POSITION
|
8
|
-
t.boolean :is_default, :default => false
|
9
|
-
t.boolean :is_system, :is_default => false
|
10
|
-
t.datetime :archived_at
|
11
|
-
|
12
|
-
t.timestamps
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
data/lib/selections/engine.rb
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
module SelectionSelect
|
2
|
-
def selections field, options = {}, html_options = {}
|
3
|
-
options ||= {}
|
4
|
-
html_options ||= {}
|
5
|
-
system_code = options[:system_code] || field
|
6
|
-
system_code = Selections::Selection.find_by_system_code(system_code.to_s)
|
7
|
-
if system_code
|
8
|
-
items = system_code.children
|
9
|
-
field_id = (field.to_s + "_id").to_sym
|
10
|
-
if object.new_record? && object.send(field_id).nil?
|
11
|
-
default = items.find_by_is_default(true)
|
12
|
-
object.send(field_id.to_s+"=", default.id) if default && !default.archived
|
13
|
-
end
|
14
|
-
options[:include_blank] = true if object.send(field_id).blank? && options[:include_blank].nil?
|
15
|
-
#TODO add default style
|
16
|
-
#html_options[:style] ||=
|
17
|
-
select field_id, items.filter_archived_except_selected(object.send(field_id)).map {|item| [item.name, item.id]}, options, html_options
|
18
|
-
else
|
19
|
-
"Invalid system_code"
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
ActionView::Helpers::FormBuilder.send :include, SelectionSelect
|
@@ -1,165 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
# This spec was generated by rspec-rails when you ran the scaffold generator.
|
4
|
-
# It demonstrates how one might use RSpec to specify the controller code that
|
5
|
-
# was generated by Rails when you ran the scaffold generator.
|
6
|
-
#
|
7
|
-
# It assumes that the implementation code is generated by the rails scaffold
|
8
|
-
# generator. If you are using any extension libraries to generate different
|
9
|
-
# controller code, this generated spec may or may not pass.
|
10
|
-
#
|
11
|
-
# It only uses APIs available in rails and/or rspec-rails. There are a number
|
12
|
-
# of tools you can use to make these specs even more expressive, but we're
|
13
|
-
# sticking to rails and rspec-rails APIs to keep things simple and stable.
|
14
|
-
#
|
15
|
-
# Compared to earlier versions of this generator, there is very limited use of
|
16
|
-
# stubs and message expectations in this spec. Stubs are only used when there
|
17
|
-
# is no simpler way to get a handle on the object needed for the example.
|
18
|
-
# Message expectations are only used when there is no simpler way to specify
|
19
|
-
# that an instance is receiving a specific message.
|
20
|
-
module Selections
|
21
|
-
describe SelectionsController do
|
22
|
-
|
23
|
-
# This should return the minimal set of attributes required to create a valid
|
24
|
-
# Selection. As you add validations to Selection, be sure to
|
25
|
-
# update the return value of this method accordingly.
|
26
|
-
def valid_attributes
|
27
|
-
Factory.build(:selection).attributes
|
28
|
-
end
|
29
|
-
|
30
|
-
# This should return the minimal set of values that should be in the session
|
31
|
-
# in order to pass any filters (e.g. authentication) defined in
|
32
|
-
# SelectionsController. Be sure to keep this updated too.
|
33
|
-
def valid_session
|
34
|
-
{}
|
35
|
-
end
|
36
|
-
|
37
|
-
describe "GET index" do
|
38
|
-
it "assigns all selections as @selections" do
|
39
|
-
selection = Selection.create! valid_attributes
|
40
|
-
get :index, {}, valid_session
|
41
|
-
assigns(:selections).should eq([selection])
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
describe "GET show" do
|
46
|
-
it "assigns the requested selection as @selection" do
|
47
|
-
selection = Selection.create! valid_attributes
|
48
|
-
get :show, {:id => selection.to_param}, valid_session
|
49
|
-
assigns(:selection).should eq(selection)
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
describe "GET new" do
|
54
|
-
it "assigns a new selection as @selection" do
|
55
|
-
get :new, {}, valid_session
|
56
|
-
assigns(:selection).should be_a_new(Selection)
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
describe "GET edit" do
|
61
|
-
it "assigns the requested selection as @selection" do
|
62
|
-
selection = Selection.create! valid_attributes
|
63
|
-
get :edit, {:id => selection.to_param}, valid_session
|
64
|
-
assigns(:selection).should eq(selection)
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
describe "POST create" do
|
69
|
-
describe "with valid params" do
|
70
|
-
it "creates a new Selection" do
|
71
|
-
expect {
|
72
|
-
post :create, {:selection => valid_attributes}, valid_session
|
73
|
-
}.to change(Selection, :count).by(1)
|
74
|
-
end
|
75
|
-
|
76
|
-
it "assigns a newly created selection as @selection" do
|
77
|
-
post :create, {:selection => valid_attributes}, valid_session
|
78
|
-
assigns(:selection).should be_a(Selection)
|
79
|
-
assigns(:selection).should be_persisted
|
80
|
-
end
|
81
|
-
|
82
|
-
it "redirects to the created selection" do
|
83
|
-
post :create, {:selection => valid_attributes}, valid_session
|
84
|
-
response.should redirect_to(Selection.last)
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
describe "with invalid params" do
|
89
|
-
it "assigns a newly created but unsaved selection as @selection" do
|
90
|
-
# Trigger the behavior that occurs when invalid params are submitted
|
91
|
-
Selection.any_instance.stub(:save).and_return(false)
|
92
|
-
post :create, {:selection => {}}, valid_session
|
93
|
-
assigns(:selection).should be_a_new(Selection)
|
94
|
-
end
|
95
|
-
|
96
|
-
it "re-renders the 'new' template" do
|
97
|
-
# Trigger the behavior that occurs when invalid params are submitted
|
98
|
-
Selection.any_instance.stub(:save).and_return(false)
|
99
|
-
post :create, {:selection => {}}, valid_session
|
100
|
-
response.should render_template("new")
|
101
|
-
end
|
102
|
-
end
|
103
|
-
end
|
104
|
-
|
105
|
-
describe "PUT update" do
|
106
|
-
describe "with valid params" do
|
107
|
-
it "updates the requested selection" do
|
108
|
-
selection = Selection.create! valid_attributes
|
109
|
-
# Assuming there are no other selections in the database, this
|
110
|
-
# specifies that the Selection created on the previous line
|
111
|
-
# receives the :update_attributes message with whatever params are
|
112
|
-
# submitted in the request.
|
113
|
-
Selection.any_instance.should_receive(:update_attributes).with({'these' => 'params'})
|
114
|
-
put :update, {:id => selection.to_param, :selection => {'these' => 'params'}}, valid_session
|
115
|
-
end
|
116
|
-
|
117
|
-
it "assigns the requested selection as @selection" do
|
118
|
-
selection = Selection.create! valid_attributes
|
119
|
-
put :update, {:id => selection.to_param, :selection => valid_attributes}, valid_session
|
120
|
-
assigns(:selection).should eq(selection)
|
121
|
-
end
|
122
|
-
|
123
|
-
it "redirects to the selection" do
|
124
|
-
selection = Selection.create! valid_attributes
|
125
|
-
put :update, {:id => selection.to_param, :selection => valid_attributes.delete_if{|x| x=="system_code"}}, valid_session
|
126
|
-
response.should redirect_to(selection)
|
127
|
-
end
|
128
|
-
end
|
129
|
-
|
130
|
-
describe "with invalid params" do
|
131
|
-
it "assigns the selection as @selection" do
|
132
|
-
selection = Selection.create! valid_attributes
|
133
|
-
# Trigger the behavior that occurs when invalid params are submitted
|
134
|
-
Selection.any_instance.stub(:save).and_return(false)
|
135
|
-
put :update, {:id => selection.to_param, :selection => {}}, valid_session
|
136
|
-
assigns(:selection).should eq(selection)
|
137
|
-
end
|
138
|
-
|
139
|
-
it "re-renders the 'edit' template" do
|
140
|
-
selection = Selection.create! valid_attributes
|
141
|
-
# Trigger the behavior that occurs when invalid params are submitted
|
142
|
-
Selection.any_instance.stub(:save).and_return(false)
|
143
|
-
put :update, {:id => selection.to_param, :selection => {}}, valid_session
|
144
|
-
response.should render_template("edit")
|
145
|
-
end
|
146
|
-
end
|
147
|
-
end
|
148
|
-
|
149
|
-
describe "DELETE destroy" do
|
150
|
-
it "destroys the requested selection" do
|
151
|
-
selection = Selection.create! valid_attributes
|
152
|
-
expect {
|
153
|
-
delete :destroy, {:id => selection.to_param}, valid_session
|
154
|
-
}.to change(Selection, :count).by(-1)
|
155
|
-
end
|
156
|
-
|
157
|
-
it "redirects to the selections list" do
|
158
|
-
selection = Selection.create! valid_attributes
|
159
|
-
delete :destroy, {:id => selection.to_param}, valid_session
|
160
|
-
response.should redirect_to(selections_url)
|
161
|
-
end
|
162
|
-
end
|
163
|
-
|
164
|
-
end
|
165
|
-
end
|