Skip to content

Commit cb8ae8b

Browse files
committed
test(e2e): handle paginated provider lists
Signed-off-by: Gaizka Menendez Hernandez <gmenende@redhat.com>
1 parent 3d48edd commit cb8ae8b

1 file changed

Lines changed: 12 additions & 1 deletion

File tree

‎e2e/rust/tests/credential_drivers.rs‎

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,8 +182,19 @@ async fn provider_identity(provider_name: &str) -> Result<ProviderIdentity, Stri
182182
if code != 0 {
183183
return Err(format!("provider list failed (exit {code}):\n{clean}"));
184184
}
185-
let providers: Vec<serde_json::Value> = serde_json::from_str(&clean)
185+
let listing: serde_json::Value = serde_json::from_str(&clean)
186186
.map_err(|err| format!("failed to parse provider list JSON: {err}\n{clean}"))?;
187+
let next_page_token = listing["next_page_token"]
188+
.as_str()
189+
.ok_or_else(|| format!("provider list response omitted next_page_token:\n{clean}"))?;
190+
if !next_page_token.is_empty() {
191+
return Err(format!(
192+
"provider list response was incomplete; received continuation token:\n{clean}"
193+
));
194+
}
195+
let providers = listing["providers"]
196+
.as_array()
197+
.ok_or_else(|| format!("provider list response omitted providers array:\n{clean}"))?;
187198
let provider = providers
188199
.iter()
189200
.find(|provider| provider["name"].as_str() == Some(provider_name))

0 commit comments

Comments
 (0)