File tree 2 files changed +39
-4
lines changed
2 files changed +39
-4
lines changed Original file line number Diff line number Diff line change @@ -38,9 +38,16 @@ def ssm
38
38
end
39
39
40
40
def parameters
41
- ssm .
42
- get_parameters_by_path ( path : @path , with_decryption : true ) .
43
- parameters
41
+ parameters = [ ]
42
+ response = ssm . get_parameters_by_path ( path : @path , with_decryption : true )
43
+ parameters << response . parameters
44
+
45
+ while response . next_page?
46
+ response = response . next_page
47
+ parameters << response . parameters
48
+ end
49
+
50
+ parameters . flatten
44
51
rescue StandardError => error
45
52
raise RetrieveError , error
46
53
end
Original file line number Diff line number Diff line change 41
41
42
42
subject { Psenv ::Retriever . new ( "/psenv/test" ) . call }
43
43
44
- context "with a successful request" do
44
+ context "with a single page request" do
45
45
before ( :each ) do
46
46
allow ( ssm ) . to receive ( :get_parameters_by_path ) {
47
47
OpenStruct . new (
60
60
end
61
61
end
62
62
63
+ context "with multiple pages" do
64
+ before ( :each ) do
65
+ allow ( ssm ) . to receive ( :get_parameters_by_path ) {
66
+ OpenStruct . new (
67
+ parameters : [ {
68
+ name : "/psenv/test/API_KEY" ,
69
+ value : "value" ,
70
+ type : "String" ,
71
+ version : 1 ,
72
+ } ] ,
73
+ next_page? : true ,
74
+ next_page : OpenStruct . new (
75
+ parameters : [ {
76
+ name : "/psenv/test/CLIENT_KEY" ,
77
+ value : "value" ,
78
+ type : "String" ,
79
+ version : 1 ,
80
+ } ] ,
81
+ ) ,
82
+ )
83
+ }
84
+ end
85
+
86
+ it "returns both parameters" do
87
+ expect ( subject ) . to eq ( "API_KEY" => "value" , "CLIENT_KEY" => "value" )
88
+ end
89
+ end
90
+
63
91
context "when the request fails" do
64
92
before ( :each ) { allow ( ssm ) . to receive ( :get_parameters_by_path ) . and_raise }
65
93
You can’t perform that action at this time.
0 commit comments