dynamic_fieldsets 0.0.16 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.rdebugrc +3 -0
- data/.rspec +1 -0
- data/CHANGELOG +7 -0
- data/Gemfile +17 -8
- data/Gemfile.lock +77 -60
- data/README.rdoc +1 -1
- data/VERSION +1 -1
- data/app/controllers/dynamic_fieldsets/fields_controller.rb +5 -4
- data/app/helpers/dynamic_fieldsets_helper.rb +48 -131
- data/app/models/dynamic_fieldsets.rb +2 -0
- data/app/models/dynamic_fieldsets/checkbox_field.rb +29 -0
- data/app/models/dynamic_fieldsets/date_field.rb +37 -0
- data/app/models/dynamic_fieldsets/datetime_field.rb +36 -0
- data/app/models/dynamic_fieldsets/dependency.rb +1 -1
- data/app/models/dynamic_fieldsets/dependency_clause.rb +1 -1
- data/app/models/dynamic_fieldsets/dependency_group.rb +1 -1
- data/app/models/dynamic_fieldsets/field.rb +170 -42
- data/app/models/dynamic_fieldsets/field_default.rb +3 -3
- data/app/models/dynamic_fieldsets/field_html_attribute.rb +1 -1
- data/app/models/dynamic_fieldsets/field_option.rb +1 -1
- data/app/models/dynamic_fieldsets/field_record.rb +1 -1
- data/app/models/dynamic_fieldsets/fieldset.rb +36 -1
- data/app/models/dynamic_fieldsets/fieldset_associator.rb +9 -34
- data/app/models/dynamic_fieldsets/fieldset_child.rb +43 -24
- data/app/models/dynamic_fieldsets/instruction_field.rb +35 -0
- data/app/models/dynamic_fieldsets/multiple_select_field.rb +43 -0
- data/app/models/dynamic_fieldsets/radio_field.rb +27 -0
- data/app/models/dynamic_fieldsets/select_field.rb +16 -0
- data/app/models/dynamic_fieldsets/text_field.rb +14 -0
- data/app/models/dynamic_fieldsets/textarea_field.rb +40 -0
- data/app/views/dynamic_fieldsets/fields/_form.html.erb +50 -52
- data/app/views/dynamic_fieldsets/fields/edit.html.erb +5 -2
- data/app/views/dynamic_fieldsets/fields/index.html.erb +1 -1
- data/app/views/dynamic_fieldsets/fields/new.html.erb +3 -1
- data/app/views/dynamic_fieldsets/fields/show.html.erb +1 -1
- data/app/views/dynamic_fieldsets/fieldsets/_child.html.erb +1 -1
- data/app/views/dynamic_fieldsets/form_partials/_checkbox_field.html.erb +8 -0
- data/app/views/dynamic_fieldsets/form_partials/_date_field.html.erb +1 -0
- data/app/views/dynamic_fieldsets/form_partials/_datetime_field.html.erb +1 -0
- data/app/views/dynamic_fieldsets/form_partials/_input_footer.html.erb +1 -0
- data/app/views/dynamic_fieldsets/form_partials/_input_header.html.erb +7 -0
- data/app/views/dynamic_fieldsets/form_partials/_instruction_field.html.erb +1 -0
- data/app/views/dynamic_fieldsets/form_partials/_multiple_select_field.html.erb +1 -0
- data/app/views/dynamic_fieldsets/form_partials/_radio_field.html.erb +8 -0
- data/app/views/dynamic_fieldsets/form_partials/_select_field.html.erb +1 -0
- data/app/views/dynamic_fieldsets/form_partials/_text_field.html.erb +1 -0
- data/app/views/dynamic_fieldsets/form_partials/_textarea_field.html.erb +1 -0
- data/app/views/dynamic_fieldsets/shared/_javascript_watcher.html.erb +8 -8
- data/app/views/dynamic_fieldsets/show_partials/_show_incomplete.html.erb +1 -0
- data/app/views/dynamic_fieldsets/show_partials/_show_incomplete_footer.html.erb +2 -0
- data/app/views/dynamic_fieldsets/show_partials/_show_incomplete_header.html.erb +1 -0
- data/app/views/dynamic_fieldsets/show_partials/_show_instruction.html.erb +1 -0
- data/app/views/dynamic_fieldsets/show_partials/_show_multiple_answers.html.erb +13 -0
- data/app/views/dynamic_fieldsets/show_partials/_show_single_answer.html.erb +8 -0
- data/autotest/discover.rb +2 -0
- data/dynamic_fieldsets.gemspec +74 -20
- data/lib/dynamic_fieldsets/config.rb +45 -0
- data/lib/dynamic_fieldsets/dynamic_fieldsets_in_model.rb +38 -63
- data/lib/dynamic_fieldsets/field_with_field_options.rb +58 -0
- data/lib/dynamic_fieldsets/field_with_multiple_answers.rb +89 -0
- data/lib/dynamic_fieldsets/field_with_single_answer.rb +84 -0
- data/lib/dynamic_fieldsets/railtie.rb +6 -1
- data/lib/generators/dynamic_fieldsets/install_generator.rb +3 -3
- data/lib/generators/dynamic_fieldsets/templates/config.rb +15 -0
- data/lib/generators/dynamic_fieldsets/templates/migrations/install_migration.rb +1 -1
- data/spec/dummy/config/initializers/dynamic_fieldsets.rb +15 -0
- data/spec/dummy/db/migrate/20120213211033_create_dynamic_fieldsets_tables.rb +1 -1
- data/spec/dummy/db/schema.rb +1 -1
- data/spec/dummy/features/step_definitions/field_steps.rb +4 -4
- data/spec/dummy/features/step_definitions/fieldset_children_steps.rb +2 -2
- data/spec/dummy/features/step_definitions/javascript_steps.rb +7 -7
- data/spec/dynamic_fieldsets_helper_spec.rb +278 -312
- data/spec/dynamic_fieldsets_in_model_spec.rb +2 -2
- data/spec/field_with_field_options_spec.rb +49 -0
- data/spec/field_with_multiple_answers_spec.rb +50 -0
- data/spec/field_with_single_answer_spec.rb +51 -0
- data/spec/models/checkbox_field_spec.rb +19 -0
- data/spec/models/date_field_spec.rb +24 -0
- data/spec/models/datetime_field_spec.rb +24 -0
- data/spec/models/dependency_clause_spec.rb +7 -8
- data/spec/models/dependency_group_spec.rb +27 -30
- data/spec/models/dependency_spec.rb +8 -9
- data/spec/models/field_default_spec.rb +19 -14
- data/spec/models/field_html_attribute_spec.rb +3 -4
- data/spec/models/field_option_spec.rb +8 -9
- data/spec/models/field_record_spec.rb +8 -9
- data/spec/models/field_spec.rb +195 -94
- data/spec/models/fieldset_associator_spec.rb +39 -41
- data/spec/models/fieldset_child_spec.rb +99 -47
- data/spec/models/fieldset_spec.rb +25 -29
- data/spec/models/instruction_field_spec.rb +38 -0
- data/spec/models/multiple_select_field_spec.rb +31 -0
- data/spec/models/radio_field_spec.rb +21 -0
- data/spec/models/text_field_spec.rb +19 -0
- data/spec/models/textarea_field_spec.rb +39 -0
- data/spec/support/field_helper.rb +1 -1
- metadata +106 -28
@@ -1,17 +1,16 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
include DynamicFieldsets
|
3
2
|
|
4
|
-
describe FieldDefault do
|
3
|
+
describe DynamicFieldsets::FieldDefault do
|
5
4
|
include FieldDefaultHelper
|
6
5
|
|
7
6
|
it "should respond to field" do
|
8
|
-
field_default = FieldDefault.new
|
7
|
+
field_default = DynamicFieldsets::FieldDefault.new
|
9
8
|
field_default.should respond_to :field
|
10
9
|
end
|
11
10
|
|
12
11
|
describe "validations" do
|
13
12
|
before(:each) do
|
14
|
-
@field_default = FieldDefault.new
|
13
|
+
@field_default = DynamicFieldsets::FieldDefault.new
|
15
14
|
end
|
16
15
|
|
17
16
|
it "should be valid" do
|
@@ -28,21 +27,24 @@ describe FieldDefault do
|
|
28
27
|
# instead of testing the method directly
|
29
28
|
describe "convert_option_name_to_id method" do
|
30
29
|
before(:each) do
|
31
|
-
@field = Field.new(:
|
30
|
+
@field = DynamicFieldsets::Field.new(:type => "select")
|
32
31
|
@field.stub!(:id).and_return(1)
|
33
|
-
@field_option = FieldOption.new(:name => "test value")
|
32
|
+
@field_option = DynamicFieldsets::FieldOption.new(:name => "test value")
|
34
33
|
@field_option.stub!(:id).and_return(2)
|
35
|
-
FieldOption.stub!(:find_by_name).and_return(@field_option)
|
36
|
-
@default = FieldDefault.new(:field => @field, :value => "test value")
|
34
|
+
DynamicFieldsets::FieldOption.stub!(:find_by_name).and_return(@field_option)
|
35
|
+
@default = DynamicFieldsets::FieldDefault.new(:field => @field, :value => "test value")
|
37
36
|
end
|
38
37
|
|
38
|
+
# removing this validation until the sti code is inplace
|
39
|
+
# changed the field name from field_type to type so rails is trying to find models
|
39
40
|
it "should convert the value to a field option id if the field's type is an option type" do
|
41
|
+
pending
|
40
42
|
@default.save
|
41
43
|
@default.value.should == @field_option.id
|
42
44
|
end
|
43
45
|
|
44
46
|
it "should retain it's value if the field's type is not an option type" do
|
45
|
-
@field.
|
47
|
+
@field.type = "textfield"
|
46
48
|
@default.save
|
47
49
|
@default.value.should_not == @field_option.id
|
48
50
|
end
|
@@ -50,16 +52,19 @@ describe FieldDefault do
|
|
50
52
|
|
51
53
|
describe "pretty_value method" do
|
52
54
|
before(:each) do
|
53
|
-
@field = Field.new(:
|
55
|
+
@field = DynamicFieldsets::Field.new(:type => "select")
|
54
56
|
@field.stub!(:id).and_return(1)
|
55
|
-
@field_option = FieldOption.new(:name => "test value")
|
57
|
+
@field_option = DynamicFieldsets::FieldOption.new(:name => "test value")
|
56
58
|
@field_option.stub!(:id).and_return(2)
|
57
|
-
FieldOption.stub!(:find_by_name).and_return(@field_option)
|
58
|
-
@default = FieldDefault.new(:field => @field, :value => "test value")
|
59
|
+
DynamicFieldsets::FieldOption.stub!(:find_by_name).and_return(@field_option)
|
60
|
+
@default = DynamicFieldsets::FieldDefault.new(:field => @field, :value => "test value")
|
59
61
|
end
|
60
62
|
|
63
|
+
# removing this validation until the sti code is inplace
|
64
|
+
# changed the field name from field_type to type so rails is trying to find models
|
61
65
|
it "should return the value if the field is not an option type" do
|
62
|
-
|
66
|
+
pending
|
67
|
+
@field.type = "textfield"
|
63
68
|
@default.pretty_value.should == @default.value
|
64
69
|
end
|
65
70
|
|
@@ -1,17 +1,16 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
include DynamicFieldsets
|
3
2
|
|
4
|
-
describe FieldHtmlAttribute do
|
3
|
+
describe DynamicFieldsets::FieldHtmlAttribute do
|
5
4
|
include FieldHtmlAttributeHelper
|
6
5
|
|
7
6
|
it "should respond to field" do
|
8
|
-
field_html_attribute = FieldHtmlAttribute.new
|
7
|
+
field_html_attribute = DynamicFieldsets::FieldHtmlAttribute.new
|
9
8
|
field_html_attribute.should respond_to :field
|
10
9
|
end
|
11
10
|
|
12
11
|
describe "validations" do
|
13
12
|
before(:each) do
|
14
|
-
@field_html_attribute = FieldHtmlAttribute.new
|
13
|
+
@field_html_attribute = DynamicFieldsets::FieldHtmlAttribute.new
|
15
14
|
end
|
16
15
|
|
17
16
|
it "should be valid" do
|
@@ -1,17 +1,16 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
|
3
|
-
|
4
|
-
describe FieldOption do
|
2
|
+
|
3
|
+
describe DynamicFieldsets::FieldOption do
|
5
4
|
include FieldOptionHelper
|
6
5
|
|
7
6
|
it "should respond to field" do
|
8
|
-
field_option = FieldOption.new
|
7
|
+
field_option = DynamicFieldsets::FieldOption.new
|
9
8
|
field_option.should respond_to :field
|
10
9
|
end
|
11
10
|
|
12
11
|
describe "validations" do
|
13
12
|
before(:each) do
|
14
|
-
@field_option = FieldOption.new
|
13
|
+
@field_option = DynamicFieldsets::FieldOption.new
|
15
14
|
end
|
16
15
|
|
17
16
|
it "should be valid" do
|
@@ -30,23 +29,23 @@ describe FieldOption do
|
|
30
29
|
|
31
30
|
describe "enabled scope" do
|
32
31
|
before(:each) do
|
33
|
-
@field_option1 = FieldOption.new
|
32
|
+
@field_option1 = DynamicFieldsets::FieldOption.new
|
34
33
|
@field_option1.attributes = valid_attributes
|
35
34
|
@field_option1.enabled = true
|
36
35
|
@field_option1.save
|
37
36
|
|
38
|
-
@field_option2 = FieldOption.new
|
37
|
+
@field_option2 = DynamicFieldsets::FieldOption.new
|
39
38
|
@field_option2.attributes = valid_attributes
|
40
39
|
@field_option2.enabled = false
|
41
40
|
@field_option2.save
|
42
41
|
end
|
43
42
|
|
44
43
|
it "should return enabled field options" do
|
45
|
-
FieldOption.enabled.should include @field_option1
|
44
|
+
DynamicFieldsets::FieldOption.enabled.should include @field_option1
|
46
45
|
end
|
47
46
|
|
48
47
|
it "should not return disabled field options" do
|
49
|
-
FieldOption.enabled.should_not include @field_option2
|
48
|
+
DynamicFieldsets::FieldOption.enabled.should_not include @field_option2
|
50
49
|
end
|
51
50
|
end
|
52
51
|
end
|
@@ -1,28 +1,27 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
include DynamicFieldsets
|
3
2
|
|
4
|
-
describe FieldRecord do
|
3
|
+
describe DynamicFieldsets::FieldRecord do
|
5
4
|
include FieldRecordHelper
|
6
5
|
|
7
6
|
it "should respond to field" do
|
8
|
-
FieldRecord.new.should respond_to :field
|
7
|
+
DynamicFieldsets::FieldRecord.new.should respond_to :field
|
9
8
|
end
|
10
9
|
|
11
10
|
it "should respond to fieldset_associator" do
|
12
|
-
FieldRecord.new.should respond_to :fieldset_associator
|
11
|
+
DynamicFieldsets::FieldRecord.new.should respond_to :fieldset_associator
|
13
12
|
end
|
14
13
|
|
15
14
|
describe "validations" do
|
16
15
|
before(:each) do
|
17
|
-
@field_record = FieldRecord.new
|
16
|
+
@field_record = DynamicFieldsets::FieldRecord.new
|
18
17
|
end
|
19
18
|
|
20
19
|
it "should be valid" do
|
21
|
-
@field_record.fieldset_child = FieldsetChild.new
|
22
|
-
@field_record.fieldset_associator = FieldsetAssociator.new
|
20
|
+
@field_record.fieldset_child = DynamicFieldsets::FieldsetChild.new
|
21
|
+
@field_record.fieldset_associator = DynamicFieldsets::FieldsetAssociator.new
|
23
22
|
@field_record.value = "42"
|
24
23
|
child = mock_model(DynamicFieldsets::Field)
|
25
|
-
@field_record.fieldset_child = FieldsetChild.new(:child => child)
|
24
|
+
@field_record.fieldset_child = DynamicFieldsets::FieldsetChild.new(:child => child)
|
26
25
|
@field_record.should be_valid
|
27
26
|
end
|
28
27
|
|
@@ -45,7 +44,7 @@ describe FieldRecord do
|
|
45
44
|
|
46
45
|
it "should error if the fieldset_child has the wrong type" do
|
47
46
|
child = mock_model(DynamicFieldsets::Fieldset)
|
48
|
-
@field_record.fieldset_child = FieldsetChild.new(:child => child)
|
47
|
+
@field_record.fieldset_child = DynamicFieldsets::FieldsetChild.new(:child => child)
|
49
48
|
@field_record.valid?
|
50
49
|
@field_record.should have(1).error_on(:fieldset_child)
|
51
50
|
end
|
data/spec/models/field_spec.rb
CHANGED
@@ -1,33 +1,41 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
include DynamicFieldsets
|
3
2
|
|
4
|
-
describe Field do
|
3
|
+
describe DynamicFieldsets::Field do
|
5
4
|
include FieldHelper
|
6
5
|
|
7
|
-
|
8
|
-
Field.new
|
6
|
+
before do
|
7
|
+
@field = DynamicFieldsets::Field.new
|
9
8
|
end
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
subject { @field }
|
10
|
+
|
11
|
+
describe "fields" do
|
12
|
+
it { should respond_to :name }
|
13
|
+
it { should respond_to :label }
|
14
|
+
it { should respond_to :type }
|
15
|
+
it { should respond_to :required }
|
16
|
+
it { should respond_to :enabled }
|
13
17
|
end
|
14
18
|
|
15
|
-
|
16
|
-
|
17
|
-
|
19
|
+
describe "associations" do
|
20
|
+
before do
|
21
|
+
pending "shoulda installation"
|
22
|
+
end
|
18
23
|
|
19
|
-
|
20
|
-
|
24
|
+
it { should have_many :fieldset_children }
|
25
|
+
it { should have_many :parent_fieldsets }
|
26
|
+
it { should have_many :field_options }
|
27
|
+
it { should have_many :field_defaults }
|
28
|
+
it { should have_many :field_html_attributes }
|
21
29
|
end
|
22
30
|
|
23
31
|
describe "validations" do
|
24
32
|
before(:each) do
|
25
|
-
@field = Field.new
|
33
|
+
@field = DynamicFieldsets::Field.new
|
26
34
|
end
|
27
35
|
|
28
|
-
it "should be valid" do
|
36
|
+
it "should not be valid because it should be instantiated through the child classes" do
|
29
37
|
@field.attributes = valid_attributes
|
30
|
-
@field.
|
38
|
+
@field.should_not be_valid
|
31
39
|
end
|
32
40
|
|
33
41
|
it "should require name" do
|
@@ -38,21 +46,10 @@ describe Field do
|
|
38
46
|
@field.should have(1).error_on(:label)
|
39
47
|
end
|
40
48
|
|
41
|
-
it "should require
|
42
|
-
@field.should have(
|
43
|
-
end
|
44
|
-
|
45
|
-
it "should require type within the allowable types" do
|
46
|
-
@field.field_type = "unsupported_type"
|
47
|
-
@field.should have(1).error_on(:field_type)
|
49
|
+
it "should require type" do
|
50
|
+
@field.should have(1).error_on(:type)
|
48
51
|
end
|
49
52
|
|
50
|
-
it "should require type within the allowable types" do
|
51
|
-
@field.field_type = "select"
|
52
|
-
@field.should have(0).error_on(:field_type)
|
53
|
-
end
|
54
|
-
|
55
|
-
|
56
53
|
it "should require enabled true or false" do
|
57
54
|
@field.enabled = true
|
58
55
|
@field.should have(0).error_on(:enabled)
|
@@ -63,48 +60,111 @@ describe Field do
|
|
63
60
|
@field.should have(0).error_on(:required)
|
64
61
|
end
|
65
62
|
|
63
|
+
# this validation now comes from the field option mixin
|
64
|
+
# whenever we get around to tests, this needs to be moved over.
|
65
|
+
# lets see how long this takes (JH 2-27-2012)
|
66
66
|
it "should require options if the type is one that requires options" do
|
67
|
-
|
67
|
+
pending "this needs to be moved to the field option mixin"
|
68
|
+
@field.type = "select"
|
68
69
|
@field.should have(1).error_on(:field_options)
|
69
70
|
end
|
70
71
|
end
|
71
72
|
|
72
|
-
|
73
|
-
|
74
|
-
|
73
|
+
# Scopes and Static Methods
|
74
|
+
|
75
|
+
it { DynamicFieldsets::Field.should respond_to :descendants }
|
76
|
+
describe ".descendants" do
|
77
|
+
it "should call super if cache classes is on"
|
78
|
+
it "should call the config if cache classes is off"
|
79
|
+
end
|
80
|
+
|
81
|
+
it { DynamicFieldsets::Field.should respond_to :descendant_collection }
|
82
|
+
describe ".descendant_collection" do
|
83
|
+
it "should call descendants"
|
84
|
+
it "should convert the class names to humanized strings"
|
85
|
+
end
|
86
|
+
|
87
|
+
describe "form partial methods" do
|
88
|
+
it { should respond_to :form_partial }
|
89
|
+
describe ".form_partial" do
|
90
|
+
it "needs tests"
|
91
|
+
end
|
92
|
+
|
93
|
+
it { should respond_to :form_header_partial }
|
94
|
+
describe ".form_header_partial" do
|
95
|
+
it "needs tests"
|
75
96
|
end
|
76
97
|
|
77
|
-
it
|
78
|
-
|
79
|
-
|
98
|
+
it { should respond_to :use_form_header_partial? }
|
99
|
+
describe ".use_form_header_partial?" do
|
100
|
+
it "needs tests"
|
80
101
|
end
|
81
102
|
|
82
|
-
it
|
83
|
-
|
84
|
-
|
103
|
+
it { should respond_to :form_footer_partial }
|
104
|
+
describe ".form_footer_partial" do
|
105
|
+
it "needs tests"
|
106
|
+
end
|
107
|
+
|
108
|
+
it { should respond_to :use_form_footer_partial? }
|
109
|
+
describe ".use_form_footer_partial?" do
|
110
|
+
it "needs tests"
|
111
|
+
end
|
112
|
+
|
113
|
+
it { should respond_to :form_partial_locals }
|
114
|
+
describe ".form_partial_locals" do
|
115
|
+
it "needs tests"
|
116
|
+
end
|
117
|
+
|
118
|
+
it { should respond_to :html_attribute_hash }
|
119
|
+
describe ".html_attribute_hash" do
|
120
|
+
it "needs tests"
|
85
121
|
end
|
86
122
|
end
|
87
123
|
|
88
|
-
describe "
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
field.should_receive(:field_options).and_return([field_option])
|
94
|
-
field.options.should include field_option
|
124
|
+
describe "show partial methods" do
|
125
|
+
|
126
|
+
it { should respond_to :show_partial }
|
127
|
+
describe ".show_partial" do
|
128
|
+
it "needs tests"
|
95
129
|
end
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
130
|
+
|
131
|
+
it { should respond_to :show_header_partial }
|
132
|
+
describe ".show_header_partial" do
|
133
|
+
it "needs tests"
|
134
|
+
end
|
135
|
+
|
136
|
+
it { should respond_to :use_show_header_partial? }
|
137
|
+
describe ".use_show_header_partial?" do
|
138
|
+
it "needs tests"
|
139
|
+
end
|
140
|
+
|
141
|
+
it { should respond_to :show_footer_partial }
|
142
|
+
describe ".show_footer_partial" do
|
143
|
+
it "needs tests"
|
144
|
+
end
|
145
|
+
|
146
|
+
it { should respond_to :use_show_footer_partial? }
|
147
|
+
describe ".use_show_footer_partial?" do
|
148
|
+
it "needs tests"
|
149
|
+
end
|
150
|
+
|
151
|
+
it { should respond_to :show_partial_locals }
|
152
|
+
describe ".show_partial_locals" do
|
153
|
+
it "needs tests"
|
154
|
+
end
|
155
|
+
|
156
|
+
it { should respond_to :get_value_for_show }
|
157
|
+
describe ".get_value_for_show" do
|
158
|
+
it "needs tests"
|
102
159
|
end
|
103
160
|
end
|
104
161
|
|
162
|
+
# other methods
|
163
|
+
|
164
|
+
it { should respond_to :has_defaults? }
|
105
165
|
describe "has_defaults?" do
|
106
166
|
before(:each) do
|
107
|
-
@field = Field.new
|
167
|
+
@field = DynamicFieldsets::Field.new
|
108
168
|
end
|
109
169
|
|
110
170
|
it "should return true if the field default has a value" do
|
@@ -117,9 +177,89 @@ describe Field do
|
|
117
177
|
end
|
118
178
|
end
|
119
179
|
|
180
|
+
it { should respond_to :in_use? }
|
181
|
+
describe "in_use? method" do
|
182
|
+
before(:each) do
|
183
|
+
@field = DynamicFieldsets::Field.new
|
184
|
+
@field.stub!(:id).and_return(1)
|
185
|
+
|
186
|
+
end
|
187
|
+
it "should return true if there is a field record associated with the field" do
|
188
|
+
@fieldset_child = DynamicFieldsets::FieldsetChild.new(:child => @field, :fieldset => nil )
|
189
|
+
@fieldset_child.stub!(:field_records).and_return(["random", "array" "of", "stuff"])
|
190
|
+
@field.stub!(:fieldset_children).and_return([@fieldset_child])
|
191
|
+
|
192
|
+
@field.in_use?.should be_true
|
193
|
+
end
|
194
|
+
|
195
|
+
it "should return true if the field is in a fieldset (through a fieldset child)" do
|
196
|
+
@fieldset = DynamicFieldsets::Fieldset.new
|
197
|
+
@fieldset.stub!(:id).and_return(2)
|
198
|
+
@fieldset_child = DynamicFieldsets::FieldsetChild.new(:child => @field, :fieldset_id => @fieldset.id)
|
199
|
+
@field.stub!(:fieldset_children).and_return([@fieldset_child])
|
200
|
+
|
201
|
+
@field.in_use?.should be_true
|
202
|
+
end
|
203
|
+
|
204
|
+
it "should return false otherwise" do
|
205
|
+
@field.in_use?.should be_false
|
206
|
+
end
|
207
|
+
end
|
208
|
+
|
209
|
+
it { should respond_to :uses_field_options? }
|
210
|
+
describe ".uses_field_options?" do
|
211
|
+
it "should return false" do
|
212
|
+
@field.uses_field_options?.should be_false
|
213
|
+
end
|
214
|
+
end
|
215
|
+
|
216
|
+
it { should respond_to :collect_default_values }
|
217
|
+
describe ".collect_default_values" do
|
218
|
+
it "needs tests"
|
219
|
+
end
|
220
|
+
|
221
|
+
it { should respond_to :get_values_using_fsa_and_fsc }
|
222
|
+
describe ".get_values_using_fsa_and_fsc" do
|
223
|
+
it "needs tests"
|
224
|
+
end
|
225
|
+
|
226
|
+
it { should respond_to :collect_field_records_by_fsa_and_fsc }
|
227
|
+
describe ".collect_field_records_by_fsa_and_fsc" do
|
228
|
+
it "needs tests"
|
229
|
+
end
|
230
|
+
|
231
|
+
it { should respond_to :update_field_records }
|
232
|
+
describe ".update_field_records" do
|
233
|
+
it "should throw an error" do
|
234
|
+
lambda { @field.update_field_records }.should raise_exception
|
235
|
+
end
|
236
|
+
end
|
237
|
+
|
238
|
+
describe "options" do
|
239
|
+
before do
|
240
|
+
pending "This code has been moved to the field option mixin"
|
241
|
+
end
|
242
|
+
|
243
|
+
it "should return options from the field options table if enabled" do
|
244
|
+
field = DynamicFieldsets::Field.new
|
245
|
+
field_option = mock_model(DynamicFieldsets::FieldOption)
|
246
|
+
field_option.stub!(:enabled).and_return(true)
|
247
|
+
field.should_receive(:field_options).and_return([field_option])
|
248
|
+
field.options.should include field_option
|
249
|
+
end
|
250
|
+
it "should not return disabled options from the field options table" do
|
251
|
+
field = DynamicFieldsets::Field.new
|
252
|
+
field_option = mock_model(DynamicFieldsets::FieldOption)
|
253
|
+
field_option.stub!(:enabled).and_return(false)
|
254
|
+
field.should_receive(:field_options).and_return([field_option])
|
255
|
+
field.options.should_not include field_option
|
256
|
+
end
|
257
|
+
end
|
258
|
+
|
120
259
|
describe "default" do
|
121
260
|
before(:each) do
|
122
|
-
|
261
|
+
pending "this code has been moved to the single answer mixin"
|
262
|
+
@field = DynamicFieldsets::Field.new
|
123
263
|
end
|
124
264
|
|
125
265
|
it "should return a string if the type does not support multiple options" do
|
@@ -136,7 +276,8 @@ describe Field do
|
|
136
276
|
|
137
277
|
describe "defaults" do
|
138
278
|
before(:each) do
|
139
|
-
|
279
|
+
pending "this code has been moved to the multiple answer mixin"
|
280
|
+
@field = DynamicFieldsets::Field.new
|
140
281
|
end
|
141
282
|
|
142
283
|
it "should return an array if the type supports multiple options" do
|
@@ -150,44 +291,4 @@ describe Field do
|
|
150
291
|
@field.defaults.should be_nil
|
151
292
|
end
|
152
293
|
end
|
153
|
-
|
154
|
-
describe "field_types method" do
|
155
|
-
it "should return an array" do
|
156
|
-
Field.field_types.should be_a_kind_of Array
|
157
|
-
end
|
158
|
-
end
|
159
|
-
|
160
|
-
describe "option_field_types method" do
|
161
|
-
it "should return an array" do
|
162
|
-
Field.option_field_types.should be_a_kind_of Array
|
163
|
-
end
|
164
|
-
end
|
165
|
-
|
166
|
-
describe "in_use? method" do
|
167
|
-
before(:each) do
|
168
|
-
@field = Field.new
|
169
|
-
@field.stub!(:id).and_return(1)
|
170
|
-
|
171
|
-
end
|
172
|
-
it "should return true if there is a field record associated with the field" do
|
173
|
-
@fieldset_child = FieldsetChild.new(:child => @field, :fieldset => nil )
|
174
|
-
@fieldset_child.stub!(:field_records).and_return(["random", "array" "of", "stuff"])
|
175
|
-
@field.stub!(:fieldset_children).and_return([@fieldset_child])
|
176
|
-
|
177
|
-
@field.in_use?.should be_true
|
178
|
-
end
|
179
|
-
|
180
|
-
it "should return true if the field is in a fieldset (through a fieldset child)" do
|
181
|
-
@fieldset = Fieldset.new
|
182
|
-
@fieldset.stub!(:id).and_return(2)
|
183
|
-
@fieldset_child = FieldsetChild.new(:child => @field, :fieldset_id => @fieldset.id)
|
184
|
-
@field.stub!(:fieldset_children).and_return([@fieldset_child])
|
185
|
-
|
186
|
-
@field.in_use?.should be_true
|
187
|
-
end
|
188
|
-
|
189
|
-
it "should return false otherwise" do
|
190
|
-
@field.in_use?.should be_false
|
191
|
-
end
|
192
|
-
end
|
193
294
|
end
|