admin_module 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +19 -0
- data/.rspec +3 -0
- data/Gemfile +14 -0
- data/Guardfile +24 -0
- data/LICENSE +22 -0
- data/README.md +281 -0
- data/Rakefile +98 -0
- data/admin_module.gemspec +34 -0
- data/bin/admin_module +13 -0
- data/lib/admin_module.rb +260 -0
- data/lib/admin_module/cli.rb +54 -0
- data/lib/admin_module/cli/cli_guideline.rb +80 -0
- data/lib/admin_module/cli/cli_lock.rb +149 -0
- data/lib/admin_module/cli/cli_parameter.rb +66 -0
- data/lib/admin_module/cli/cli_task.rb +149 -0
- data/lib/admin_module/cli_old.rb +92 -0
- data/lib/admin_module/client.rb +146 -0
- data/lib/admin_module/command.rb +25 -0
- data/lib/admin_module/command/client_access.rb +43 -0
- data/lib/admin_module/command/config.rb +310 -0
- data/lib/admin_module/command/dc.rb +110 -0
- data/lib/admin_module/command/gdl.rb +71 -0
- data/lib/admin_module/command/lock.rb +110 -0
- data/lib/admin_module/command/ppm.rb +142 -0
- data/lib/admin_module/command/rule.rb +77 -0
- data/lib/admin_module/command/ruleset.rb +56 -0
- data/lib/admin_module/command/snapshot.rb +110 -0
- data/lib/admin_module/command/stage.rb +131 -0
- data/lib/admin_module/command/task.rb +110 -0
- data/lib/admin_module/config_helper.rb +33 -0
- data/lib/admin_module/dc.rb +133 -0
- data/lib/admin_module/guideline.rb +86 -0
- data/lib/admin_module/locks.rb +142 -0
- data/lib/admin_module/page_factory.rb +55 -0
- data/lib/admin_module/pages.rb +120 -0
- data/lib/admin_module/pages/dc_definitions_page.rb +73 -0
- data/lib/admin_module/pages/dc_detail_page.rb +187 -0
- data/lib/admin_module/pages/guideline_page.rb +35 -0
- data/lib/admin_module/pages/guideline_version_page.rb +140 -0
- data/lib/admin_module/pages/guidelines_page.rb +59 -0
- data/lib/admin_module/pages/guidelines_version_all_page.rb +116 -0
- data/lib/admin_module/pages/lock_definition_page.rb +178 -0
- data/lib/admin_module/pages/lock_definitions_page.rb +69 -0
- data/lib/admin_module/pages/login_page.rb +75 -0
- data/lib/admin_module/pages/parameter_page.rb +62 -0
- data/lib/admin_module/pages/parameters_page.rb +46 -0
- data/lib/admin_module/pages/ppms_page.rb +110 -0
- data/lib/admin_module/pages/rule_page.rb +68 -0
- data/lib/admin_module/pages/rules_page.rb +74 -0
- data/lib/admin_module/pages/ruleset_page.rb +64 -0
- data/lib/admin_module/pages/rulesets_page.rb +60 -0
- data/lib/admin_module/pages/select_list_syncable.rb +64 -0
- data/lib/admin_module/pages/snapshot_definitions_page.rb +73 -0
- data/lib/admin_module/pages/snapshot_detail_page.rb +246 -0
- data/lib/admin_module/pages/workflow_detail_page.rb +451 -0
- data/lib/admin_module/pages/workflow_detail_task_addl_detail_page.rb +172 -0
- data/lib/admin_module/pages/workflow_detail_task_mappings_page.rb +163 -0
- data/lib/admin_module/pages/workflow_detail_task_screens_page.rb +75 -0
- data/lib/admin_module/pages/workflow_details_page.rb +67 -0
- data/lib/admin_module/pages/workflow_task_page.rb +107 -0
- data/lib/admin_module/pages/workflow_tasks_page.rb +111 -0
- data/lib/admin_module/ppms.rb +78 -0
- data/lib/admin_module/rake.rb +22 -0
- data/lib/admin_module/rake/dc_tasks.rb +185 -0
- data/lib/admin_module/rake/deploy_task.rb +59 -0
- data/lib/admin_module/rake/gdl_tasks.rb +189 -0
- data/lib/admin_module/rake/lock_tasks.rb +189 -0
- data/lib/admin_module/rake/parameter_task.rb +86 -0
- data/lib/admin_module/rake/ppm_tasks.rb +248 -0
- data/lib/admin_module/rake/rule_tasks.rb +157 -0
- data/lib/admin_module/rake/snapshot_tasks.rb +223 -0
- data/lib/admin_module/rake/stage_tasks.rb +197 -0
- data/lib/admin_module/rake/stages_task.rb +197 -0
- data/lib/admin_module/rake/task_tasks.rb +189 -0
- data/lib/admin_module/rules.rb +50 -0
- data/lib/admin_module/rulesets.rb +42 -0
- data/lib/admin_module/snapshots.rb +133 -0
- data/lib/admin_module/stages.rb +171 -0
- data/lib/admin_module/tasks.rb +147 -0
- data/lib/admin_module/version.rb +3 -0
- data/old_spec/lib/admin_module/cli_configuration_spec.rb +126 -0
- data/old_spec/lib/admin_module/cli_create_stage_spec.rb +89 -0
- data/old_spec/lib/admin_module/cli_delete_rule_spec.rb +57 -0
- data/old_spec/lib/admin_module/cli_deploy_spec.rb +57 -0
- data/old_spec/lib/admin_module/cli_export_locks_spec.rb +62 -0
- data/old_spec/lib/admin_module/cli_export_stages_spec.rb +62 -0
- data/old_spec/lib/admin_module/cli_guidelines_version_all_spec.rb +58 -0
- data/old_spec/lib/admin_module/cli_import_locks_spec.rb +153 -0
- data/old_spec/lib/admin_module/cli_import_stages_spec.rb +173 -0
- data/old_spec/lib/admin_module/cli_modify_locks_spec.rb +128 -0
- data/old_spec/lib/admin_module/cli_modify_stages_spec.rb +88 -0
- data/old_spec/lib/admin_module/cli_rename_rule_spec.rb +53 -0
- data/old_spec/lib/admin_module/cli_rename_ruleset_spec.rb +53 -0
- data/old_spec/lib/admin_module/cli_var_spec.rb +41 -0
- data/old_spec/lib/admin_module/rake/deploy_task_spec.rb +85 -0
- data/old_spec/lib/admin_module/rake/parameter_task_spec.rb +58 -0
- data/old_spec/lib/admin_module/rake/rules_task_spec.rb +75 -0
- data/spec/data/build/test1.xml +0 -0
- data/spec/data/build/test2.xml +1 -0
- data/spec/data/import_dcs.yml +31 -0
- data/spec/data/import_locks.yml +4 -0
- data/spec/data/import_snapshots.yml +35 -0
- data/spec/data/import_stages.yml +4 -0
- data/spec/data/import_tasks.yml +25 -0
- data/spec/data/patch-test.xml +1 -0
- data/spec/data/remove_test_del_rule.xml +1 -0
- data/spec/data/stages.yml +518 -0
- data/spec/data/test_del_rule.xml +1 -0
- data/spec/lib/admin_module/admin_module_spec.rb +175 -0
- data/spec/lib/admin_module/cli_spec.rb +36 -0
- data/spec/lib/admin_module/client_spec.rb +158 -0
- data/spec/lib/admin_module/command/config_spec.rb +477 -0
- data/spec/lib/admin_module/command/dc_spec.rb +202 -0
- data/spec/lib/admin_module/command/gdl_spec.rb +139 -0
- data/spec/lib/admin_module/command/lock_spec.rb +207 -0
- data/spec/lib/admin_module/command/rule_spec.rb +163 -0
- data/spec/lib/admin_module/command/ruleset_spec.rb +124 -0
- data/spec/lib/admin_module/command/snapshot_spec.rb +202 -0
- data/spec/lib/admin_module/command/stage_spec.rb +259 -0
- data/spec/lib/admin_module/command/task_spec.rb +207 -0
- data/spec/lib/admin_module/dc_spec.rb +192 -0
- data/spec/lib/admin_module/guideline_spec.rb +177 -0
- data/spec/lib/admin_module/locks_spec.rb +188 -0
- data/spec/lib/admin_module/rules_spec.rb +110 -0
- data/spec/lib/admin_module/rulesets_spec.rb +85 -0
- data/spec/lib/admin_module/snapshot_spec.rb +192 -0
- data/spec/lib/admin_module/stages_spec.rb +179 -0
- data/spec/lib/admin_module/tasks_spec.rb +196 -0
- data/spec/spec_helper.rb +54 -0
- data/spec/support/asserts.rb +13 -0
- data/spec/support/data_clearing.rb +28 -0
- data/spec/support/dirs.rb +54 -0
- data/spec/support/helpers.rb +83 -0
- data/spec/support/lock.rb +23 -0
- data/spec/support/mocks.rb +213 -0
- data/spec/support/snapshot.rb +28 -0
- data/spec/support/stage.rb +22 -0
- data/spec/support/stage_factory.rb +138 -0
- data/spec/support/task.rb +23 -0
- metadata +381 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
#require_relative '../../lib/admin_module/pages/guidelines_page'
|
|
3
|
+
#require_relative '../../lib/admin_module/pages/guideline_version_page'
|
|
4
|
+
|
|
5
|
+
describe AdminModule::CLI do
|
|
6
|
+
|
|
7
|
+
let(:cli) do
|
|
8
|
+
AdminModule.configure do |config|
|
|
9
|
+
config.credentials = { :dev => ['admin', 'Password1*'] }
|
|
10
|
+
end
|
|
11
|
+
AdminModule::CLI.new
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
after(:each) do
|
|
15
|
+
cli.quit
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
let(:test_message) { 'JM: ' + timestamp }
|
|
19
|
+
|
|
20
|
+
let(:timestamp) do
|
|
21
|
+
now = DateTime.now
|
|
22
|
+
m = "%02d" % now.month
|
|
23
|
+
d = "%02d" % now.day
|
|
24
|
+
y = "%04d" % now.year
|
|
25
|
+
hour = "%02d" % now.hour
|
|
26
|
+
min = "%02d" % now.minute
|
|
27
|
+
sec = "%02d" % now.sec
|
|
28
|
+
|
|
29
|
+
time_stamp = "#{y}#{m}#{d}T#{hour}#{min}#{sec}"
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
let(:test_gdl) { 'WF-FwdApp-Pre' }
|
|
33
|
+
let(:base_url) { cli.base_url }
|
|
34
|
+
let(:browser) { cli.browser }
|
|
35
|
+
|
|
36
|
+
describe "#version_all" do
|
|
37
|
+
|
|
38
|
+
context "with version message" do
|
|
39
|
+
|
|
40
|
+
it "guidelines are versioned with supplied message" do
|
|
41
|
+
cli.version_all(test_gdl, test_message)
|
|
42
|
+
|
|
43
|
+
# To verify, we open a guideline page,
|
|
44
|
+
# goto the versions tab,
|
|
45
|
+
# and ask the GuidelineVersionPage object to verify the version message for us.
|
|
46
|
+
gdl_page_url = AdminModule::Pages::GuidelinesPage.new(browser, base_url).
|
|
47
|
+
open_guideline(test_gdl)
|
|
48
|
+
|
|
49
|
+
AdminModule::Pages::GuidelinePage.new(browser, gdl_page_url).versions
|
|
50
|
+
version_page = AdminModule::Pages::GuidelineVersionPage.new(browser, gdl_page_url)
|
|
51
|
+
|
|
52
|
+
version_page.verify_latest_version test_message
|
|
53
|
+
|
|
54
|
+
expect{ version_page.raise_if_errors }.to_not raise_error
|
|
55
|
+
end
|
|
56
|
+
end # context
|
|
57
|
+
end # describe "#version_all"
|
|
58
|
+
end # describe AdminModule
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe AdminModule::CLI do
|
|
4
|
+
|
|
5
|
+
##
|
|
6
|
+
# Quit the browser after each test.
|
|
7
|
+
after(:each) do
|
|
8
|
+
quit_cli
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
describe "#create_lock" do
|
|
13
|
+
context "lock data missing name parameter" do
|
|
14
|
+
|
|
15
|
+
let(:lock_data_missing_name) do
|
|
16
|
+
{ description: '',
|
|
17
|
+
is_program_lock: false,
|
|
18
|
+
parameters: [ 'Monthly Gross Income' ],
|
|
19
|
+
dts: []
|
|
20
|
+
}
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
it "will raise exception" do
|
|
25
|
+
expect { cli.create_lock(lock_data_missing_name) }.to raise_exception(ArgumentError)
|
|
26
|
+
end
|
|
27
|
+
end # context
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
context "lock data missing both dsm and dts parameters" do
|
|
31
|
+
|
|
32
|
+
let(:lock_data_missing_params_and_dts) do
|
|
33
|
+
{ name: 'MissingDataLock',
|
|
34
|
+
description: '',
|
|
35
|
+
is_program_lock: false,
|
|
36
|
+
}
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
it "will raise exception" do
|
|
41
|
+
expect { cli.create_lock(lock_data_missing_params_and_dts) }.to raise_exception(ArgumentError)
|
|
42
|
+
end
|
|
43
|
+
end # context
|
|
44
|
+
|
|
45
|
+
context "lock data contains empty dsms and empty dts parameters" do
|
|
46
|
+
|
|
47
|
+
let(:lock_data_empty_params_and_dts) do
|
|
48
|
+
{ name: 'MissingDataLock',
|
|
49
|
+
description: '',
|
|
50
|
+
is_program_lock: false,
|
|
51
|
+
parameters: [],
|
|
52
|
+
dts: []
|
|
53
|
+
}
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
it "will raise exception" do
|
|
58
|
+
expect { cli.create_lock(lock_data_empty_params_and_dts) }.to raise_exception(ArgumentError)
|
|
59
|
+
end
|
|
60
|
+
end # context
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
context "lock name already exists" do
|
|
64
|
+
|
|
65
|
+
let(:income_lock) do
|
|
66
|
+
{ name: 'IncomeLock',
|
|
67
|
+
description: '',
|
|
68
|
+
is_program_lock: false,
|
|
69
|
+
parameters: [ 'Monthly Gross Income' ],
|
|
70
|
+
dts: []
|
|
71
|
+
}
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
it "will raise exception" do
|
|
76
|
+
expect { cli.create_lock(income_lock) }.to raise_exception(ArgumentError)
|
|
77
|
+
end
|
|
78
|
+
end # context
|
|
79
|
+
|
|
80
|
+
# Commented out because this actually creates a lock and locks can't
|
|
81
|
+
# be deleted:
|
|
82
|
+
|
|
83
|
+
#context "lock name does not exist" do
|
|
84
|
+
|
|
85
|
+
# let(:test_lock) do
|
|
86
|
+
# { name: 'TestLock',
|
|
87
|
+
# description: 'This is a test',
|
|
88
|
+
# is_program_lock: false,
|
|
89
|
+
# parameters: [ 'Monthly Gross Income' ],
|
|
90
|
+
# dts: [ '2nd Investor' ]
|
|
91
|
+
# }
|
|
92
|
+
# end
|
|
93
|
+
|
|
94
|
+
# it "lock is created" do
|
|
95
|
+
# cli.create_lock(test_lock)
|
|
96
|
+
# expect(cli.get_lock('TestLock')).to eq test_lock
|
|
97
|
+
# end
|
|
98
|
+
#end # context
|
|
99
|
+
end # describe "#create_lock"
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
describe "#import_locks" do
|
|
103
|
+
context "with filename" do
|
|
104
|
+
|
|
105
|
+
let(:src_data) do
|
|
106
|
+
{ "TestLock" =>
|
|
107
|
+
{ name: 'TestLock',
|
|
108
|
+
description: 'This is a test lock',
|
|
109
|
+
is_program_lock: false,
|
|
110
|
+
parameters: [ 'Rank' ],
|
|
111
|
+
dts: []
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
let(:src_file_path) { 'tmp/spec/admin_module/locks.yml' }
|
|
117
|
+
let(:src_file) { write_yaml_data_file(src_file_path, src_data); src_file_path }
|
|
118
|
+
|
|
119
|
+
let(:bad_src_data) do
|
|
120
|
+
{ "TestLock" =>
|
|
121
|
+
{ name: 'TestLock',
|
|
122
|
+
description: 'This is a test lock',
|
|
123
|
+
is_program_lock: false,
|
|
124
|
+
parameters: [ 'I do not exist' ],
|
|
125
|
+
dts: []
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
let(:bad_src_file_path) { 'tmp/spec/admin_module/locks_bad.yml' }
|
|
131
|
+
let(:bad_src_file) { write_yaml_data_file(bad_src_file_path, bad_src_data); bad_src_file_path }
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
it "configures locks sourced from a file" do
|
|
135
|
+
cli.import_locks(src_file)
|
|
136
|
+
expect(cli.get_lock('TestLock')).to eq src_data["TestLock"]
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
context "with non-existing DSMs" do
|
|
140
|
+
it "raises an exception" do
|
|
141
|
+
expect { cli.import_locks(bad_src_file) }.to raise_exception
|
|
142
|
+
end
|
|
143
|
+
end
|
|
144
|
+
end # context
|
|
145
|
+
|
|
146
|
+
context "with invalid filename" do
|
|
147
|
+
it "raises an IOError" do
|
|
148
|
+
expect { cli.import_locks('does_not_exist.yml') }.to raise_exception(IOError)
|
|
149
|
+
end
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
end # describe "#import_locks"
|
|
153
|
+
end # describe AdminModule
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe AdminModule::CLI do
|
|
4
|
+
|
|
5
|
+
let(:cli) do
|
|
6
|
+
AdminModule.configure do |config|
|
|
7
|
+
config.credentials = { :dev => ['admin', 'Password1*'] }
|
|
8
|
+
end
|
|
9
|
+
AdminModule::CLI.new
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
after(:each) do
|
|
13
|
+
cli.quit
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
let(:test_stage) do
|
|
17
|
+
{ name: 'Test Stage',
|
|
18
|
+
transition_to: [
|
|
19
|
+
'001 New File',
|
|
20
|
+
'022 Docs Verification',
|
|
21
|
+
'060 Reconsideration Exceptions/Overrides',
|
|
22
|
+
'096 Withdrawn',
|
|
23
|
+
'120 Second Review-Pending Docs' ],
|
|
24
|
+
events: {
|
|
25
|
+
"ForwardApplication PreEvent" =>"",
|
|
26
|
+
"ForwardApplication PostEvent" =>"WF-ForwardApp-Post",
|
|
27
|
+
"OrderCredit PreEvent" =>"",
|
|
28
|
+
"OrderCredit PostEvent" =>"",
|
|
29
|
+
"OrderAvm PreEvent" =>"",
|
|
30
|
+
"OrderAvm PostEvent" =>"",
|
|
31
|
+
"RerunProduct PreEvent" =>"",
|
|
32
|
+
"RerunProduct PostEvent" =>"",
|
|
33
|
+
"BatchUpload PreEvent" =>"",
|
|
34
|
+
"BatchUpload PostEvent" =>"",
|
|
35
|
+
"ProductSelection PreEvent" =>"",
|
|
36
|
+
"ProductSelection PostEvent" =>"WF-ProdSel-Post",
|
|
37
|
+
"Decision Loan Pre Event" =>"",
|
|
38
|
+
"Decision Loan Post Event" =>"",
|
|
39
|
+
"ReDecision Loan Pre Event" =>"",
|
|
40
|
+
"ReDecision Loan Post Event" =>"",
|
|
41
|
+
"Lock Pre Event" =>"",
|
|
42
|
+
"Lock Post Event" =>"",
|
|
43
|
+
"Save Task Pre Event" =>"",
|
|
44
|
+
"Save Task Post Event" =>"",
|
|
45
|
+
"Export HSSN Pre Event" =>"",
|
|
46
|
+
"Data Clearing Pre Event" =>"",
|
|
47
|
+
"Data Clearing Post Event" =>""
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
let(:create_test_stage) do
|
|
53
|
+
begin
|
|
54
|
+
cli.create_stage(test_stage)
|
|
55
|
+
rescue
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
let(:delete_test_stage) do
|
|
60
|
+
begin
|
|
61
|
+
cli.delete_stage(test_stage)
|
|
62
|
+
rescue
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
let(:test_stage_2) do
|
|
67
|
+
{ name: 'Test Stage Two',
|
|
68
|
+
transition_to: [
|
|
69
|
+
'001 New File',
|
|
70
|
+
'005 Application and Eligibility' ],
|
|
71
|
+
events: {
|
|
72
|
+
"ForwardApplication PreEvent" =>"",
|
|
73
|
+
"ForwardApplication PostEvent" =>"WF-ForwardApp-Post",
|
|
74
|
+
"OrderCredit PreEvent" =>"",
|
|
75
|
+
"OrderCredit PostEvent" =>"",
|
|
76
|
+
"OrderAvm PreEvent" =>"",
|
|
77
|
+
"OrderAvm PostEvent" =>"",
|
|
78
|
+
"RerunProduct PreEvent" =>"",
|
|
79
|
+
"RerunProduct PostEvent" =>"",
|
|
80
|
+
"BatchUpload PreEvent" =>"",
|
|
81
|
+
"BatchUpload PostEvent" =>"",
|
|
82
|
+
"ProductSelection PreEvent" =>"",
|
|
83
|
+
"ProductSelection PostEvent" =>"WF-ProdSel-Post",
|
|
84
|
+
"Decision Loan Pre Event" =>"",
|
|
85
|
+
"Decision Loan Post Event" =>"",
|
|
86
|
+
"ReDecision Loan Pre Event" =>"",
|
|
87
|
+
"ReDecision Loan Post Event" =>"",
|
|
88
|
+
"Lock Pre Event" =>"",
|
|
89
|
+
"Lock Post Event" =>"",
|
|
90
|
+
"Save Task Pre Event" =>"",
|
|
91
|
+
"Save Task Post Event" =>"",
|
|
92
|
+
"Export HSSN Pre Event" =>"",
|
|
93
|
+
"Data Clearing Pre Event" =>"",
|
|
94
|
+
"Data Clearing Post Event" =>""
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
let(:delete_test_stage_2) do
|
|
100
|
+
begin
|
|
101
|
+
cli.delete_stage(test_stage_2)
|
|
102
|
+
rescue
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
let(:test_stage_missing_stages) do
|
|
107
|
+
{ name: 'Test Stage With Missing Stages',
|
|
108
|
+
transition_to: [
|
|
109
|
+
'Z Test Stage 1',
|
|
110
|
+
'Z Test Stage 2',
|
|
111
|
+
'Z Test Stage 3' ],
|
|
112
|
+
events: {
|
|
113
|
+
'ForwardApplication PreEvent' => "",
|
|
114
|
+
'ForwardApplication PostEvent' => "WF-ForwardApp-Post"
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
let(:create_test_stage_missing_stages) do
|
|
120
|
+
begin
|
|
121
|
+
cli.create_stage(test_stage_missing_stages)
|
|
122
|
+
rescue
|
|
123
|
+
end
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
let(:delete_test_stage_missing_stages) do
|
|
127
|
+
begin
|
|
128
|
+
cli.delete_stage(test_stage_missing_stages)
|
|
129
|
+
rescue
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
describe "#import_stages" do
|
|
136
|
+
context "with filename" do
|
|
137
|
+
|
|
138
|
+
let(:src_file_path) { 'tmp/spec/admin_module/stages.yml' }
|
|
139
|
+
let(:src_file) { write_yaml_data_file(src_file_path, {test_stage[:name] => test_stage}); src_file_path }
|
|
140
|
+
|
|
141
|
+
let(:bad_src_file_path) { 'tmp/spec/admin_module/stages_bad.yml' }
|
|
142
|
+
let(:bad_src_file) { write_yaml_data_file(bad_src_file_path, {test_stage_missing_stages[:name] => test_stage_missing_stages}); bad_src_file_path }
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
it "configures stages sourced from a file" do
|
|
146
|
+
delete_test_stage
|
|
147
|
+
|
|
148
|
+
cli.import_stages(src_file)
|
|
149
|
+
expect(cli.get_stage(test_stage[:name])).to eq test_stage
|
|
150
|
+
|
|
151
|
+
delete_test_stage
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
context "with non-existing stage names" do
|
|
155
|
+
it "raises an exception" do
|
|
156
|
+
delete_test_stage_missing_stages
|
|
157
|
+
|
|
158
|
+
expect { cli.import_stages(bad_src_file) }.to raise_exception
|
|
159
|
+
|
|
160
|
+
delete_test_stage_missing_stages
|
|
161
|
+
delete_test_stage
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
end # context
|
|
165
|
+
|
|
166
|
+
context "with invalid filename" do
|
|
167
|
+
it "raises an IOError" do
|
|
168
|
+
expect { cli.import_stages('does_not_exist.yml') }.to raise_exception(IOError)
|
|
169
|
+
end
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
end # describe "#import_stages"
|
|
173
|
+
end # describe AdminModule
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe AdminModule::CLI do
|
|
4
|
+
|
|
5
|
+
let(:cli) do
|
|
6
|
+
AdminModule.configure do |config|
|
|
7
|
+
config.credentials = { :dev => ['admin', 'Password1*'] }
|
|
8
|
+
end
|
|
9
|
+
AdminModule::CLI.new
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
after(:each) do
|
|
13
|
+
cli.quit
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
describe "#modify_lock" do
|
|
18
|
+
|
|
19
|
+
before(:each) do
|
|
20
|
+
tstlock = { name: 'TestLock',
|
|
21
|
+
description: '',
|
|
22
|
+
is_program_lock: false,
|
|
23
|
+
parameters: [ 'Rank' ],
|
|
24
|
+
dts: []
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
begin
|
|
28
|
+
cli.modify_lock(tstlock, 'TestLock')
|
|
29
|
+
success = true
|
|
30
|
+
rescue
|
|
31
|
+
unless success == true
|
|
32
|
+
cli.modify_lock(tstlock, 'TestAnotherLock')
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
context "lock data missing name parameter" do
|
|
39
|
+
|
|
40
|
+
let(:lock_data_missing_name) do
|
|
41
|
+
{ description: '',
|
|
42
|
+
is_program_lock: false,
|
|
43
|
+
parameters: [ 'Monthly Gross Income' ],
|
|
44
|
+
dts: []
|
|
45
|
+
}
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
it "will raise exception" do
|
|
50
|
+
expect { cli.modify_lock(lock_data_missing_name) }.to raise_exception(ArgumentError)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
context "lock name specified" do
|
|
55
|
+
|
|
56
|
+
let(:lock_data_missing_name) do
|
|
57
|
+
{ description: '',
|
|
58
|
+
is_program_lock: false,
|
|
59
|
+
parameters: [ 'Monthly Gross Income' ],
|
|
60
|
+
dts: []
|
|
61
|
+
}
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
let(:retrieved_lock) do
|
|
65
|
+
{ name: 'TestLock',
|
|
66
|
+
description: '',
|
|
67
|
+
is_program_lock: false,
|
|
68
|
+
parameters: [ 'Monthly Gross Income' ],
|
|
69
|
+
dts: []
|
|
70
|
+
}
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
it "lock is modified" do
|
|
75
|
+
cli.modify_lock(lock_data_missing_name, 'TestLock')
|
|
76
|
+
expect(cli.get_lock('TestLock')).to eq retrieved_lock
|
|
77
|
+
end
|
|
78
|
+
end # context
|
|
79
|
+
end # context
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
context "lock name exists" do
|
|
83
|
+
|
|
84
|
+
let(:test_lock) do
|
|
85
|
+
{ name: 'TestLock',
|
|
86
|
+
description: '',
|
|
87
|
+
is_program_lock: false,
|
|
88
|
+
parameters: [],
|
|
89
|
+
dts: [ '2nd Lien Payoff' ]
|
|
90
|
+
}
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
it "lock is modified" do
|
|
94
|
+
cli.modify_lock(test_lock)
|
|
95
|
+
expect(cli.get_lock('TestLock')).to eq test_lock
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
context "lock name is changed to data's name" do
|
|
100
|
+
|
|
101
|
+
let(:another_lock) do
|
|
102
|
+
{ name: 'TestAnotherLock',
|
|
103
|
+
description: '',
|
|
104
|
+
is_program_lock: false,
|
|
105
|
+
parameters: [],
|
|
106
|
+
dts: [ '2nd Lien Payoff' ]
|
|
107
|
+
}
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
let(:test_lock) do
|
|
111
|
+
{ name: 'TestLock',
|
|
112
|
+
description: '',
|
|
113
|
+
is_program_lock: false,
|
|
114
|
+
parameters: [],
|
|
115
|
+
dts: [ '2nd Lien Payoff' ]
|
|
116
|
+
}
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
it "lock is renamed" do
|
|
121
|
+
cli.modify_lock(another_lock, 'TestLock')
|
|
122
|
+
expect(cli.get_lock('TestAnotherLock')).to eq another_lock
|
|
123
|
+
end
|
|
124
|
+
end # context
|
|
125
|
+
end # context
|
|
126
|
+
|
|
127
|
+
end # describe "#modify_lock"
|
|
128
|
+
end # describe AdminModule
|