forked from ManageIQ/manageiq
/
dialog_field_serializer_spec.rb
72 lines (64 loc) · 2.85 KB
/
dialog_field_serializer_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
require "spec_helper"
describe DialogFieldSerializer do
let(:resource_action_serializer) { double("ResourceActionSerializer") }
let(:dialog_field_serializer) { described_class.new(resource_action_serializer) }
describe "#serialize" do
let(:dialog_field) { DialogFieldTextBox.new(expected_serialized_values.merge(:resource_action => resource_action)) }
let(:resource_action) { ResourceAction.new }
let(:expected_serialized_values) do
{
"name" => "name",
"description" => "description",
"type" => "DialogFieldTextBox",
"data_type" => "data_type",
"notes" => "notes",
"notes_display" => "notes display",
"display" => "display",
"display_method" => "display method",
"display_method_options" => {"display method options" => true},
"dynamic" => dynamic,
"required" => false,
"required_method" => "required method",
"required_method_options" => {"required method options" => true},
"show_refresh_button" => false,
"default_value" => "default value",
"values" => "values",
"values_method" => "values method",
"values_method_options" => {"values method options" => true},
"options" => {"options" => true},
"label" => "label",
"load_values_on_init" => false,
"position" => 1,
"read_only" => false,
"auto_refresh" => false,
"trigger_auto_refresh" => false,
"validator_type" => "validator_type",
"validator_rule" => "validator_rule",
"reconfigurable" => nil
}
end
before do
allow(resource_action_serializer).to receive(:serialize).with(resource_action).and_return("serialized resource action")
end
context "when the dialog_field is dynamic" do
let(:dynamic) { true }
before do
allow(dialog_field).to receive(:trigger_automate_value_updates).and_return("dynamic values")
end
it "serializes the dialog_field with the correct values" do
expect(dialog_field_serializer.serialize(dialog_field)).to eq(expected_serialized_values.merge(
"resource_action" => "serialized resource action",
"values" => "dynamic values"
))
end
end
context "when the dialog_field is not dynamic" do
let(:dynamic) { false }
it "serializes the dialog_field" do
expect(dialog_field_serializer.serialize(dialog_field)).to eq(expected_serialized_values.merge(
"resource_action" => "serialized resource action"
))
end
end
end
end