Add tests to test the --max-age arg in http commands (#14245)

- fixes #14241

Signed-off-by: Alex Johnson <alex.kattathra.johnson@gmail.com>
This commit is contained in:
Alex Kattathra Johnson 2024-11-04 05:41:44 -06:00 committed by GitHub
parent 8b19399b13
commit 22ca5a6b8d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 132 additions and 0 deletions

View File

@ -1,3 +1,5 @@
use std::{thread, time::Duration};
use mockito::Server; use mockito::Server;
use nu_test_support::{nu, pipeline}; use nu_test_support::{nu, pipeline};
@ -122,3 +124,21 @@ fn http_delete_redirect_mode_error() {
"Redirect encountered when redirect handling mode was 'error' (301 Moved Permanently)" "Redirect encountered when redirect handling mode was 'error' (301 Moved Permanently)"
)); ));
} }
#[test]
fn http_delete_timeout() {
let mut server = Server::new();
let _mock = server
.mock("DELETE", "/")
.with_chunked_body(|w| {
thread::sleep(Duration::from_secs(1));
w.write_all(b"Delayed response!")
})
.create();
let actual = nu!(pipeline(
format!("http delete --max-time 500ms {url}", url = server.url()).as_str()
));
assert!(&actual.err.contains("nu::shell::io_error"));
}

View File

@ -1,3 +1,5 @@
use std::{thread, time::Duration};
use mockito::Server; use mockito::Server;
use nu_test_support::{nu, pipeline}; use nu_test_support::{nu, pipeline};
@ -316,3 +318,21 @@ fn http_get_with_unknown_mime_type() {
assert_eq!(actual.out, "[1,2,3]"); assert_eq!(actual.out, "[1,2,3]");
} }
#[test]
fn http_get_timeout() {
let mut server = Server::new();
let _mock = server
.mock("GET", "/")
.with_chunked_body(|w| {
thread::sleep(Duration::from_secs(1));
w.write_all(b"Delayed response!")
})
.create();
let actual = nu!(pipeline(
format!("http get --max-time 500ms {url}", url = server.url()).as_str()
));
assert!(&actual.err.contains("nu::shell::io_error"));
}

View File

@ -1,3 +1,5 @@
use std::{thread, time::Duration};
use mockito::Server; use mockito::Server;
use nu_test_support::{nu, pipeline}; use nu_test_support::{nu, pipeline};
@ -41,3 +43,21 @@ fn http_options_failed_due_to_server_error() {
assert!(actual.err.contains("Bad request (400)")) assert!(actual.err.contains("Bad request (400)"))
} }
#[test]
fn http_options_timeout() {
let mut server = Server::new();
let _mock = server
.mock("OPTIONS", "/")
.with_chunked_body(|w| {
thread::sleep(Duration::from_secs(1));
w.write_all(b"Delayed response!")
})
.create();
let actual = nu!(pipeline(
format!("http options --max-time 500ms {url}", url = server.url()).as_str()
));
assert!(&actual.err.contains("nu::shell::io_error"));
}

View File

@ -1,3 +1,5 @@
use std::{thread, time::Duration};
use mockito::Server; use mockito::Server;
use nu_test_support::{nu, pipeline}; use nu_test_support::{nu, pipeline};
@ -162,3 +164,25 @@ fn http_patch_redirect_mode_error() {
"Redirect encountered when redirect handling mode was 'error' (301 Moved Permanently)" "Redirect encountered when redirect handling mode was 'error' (301 Moved Permanently)"
)); ));
} }
#[test]
fn http_patch_timeout() {
let mut server = Server::new();
let _mock = server
.mock("PATCH", "/")
.with_chunked_body(|w| {
thread::sleep(Duration::from_secs(1));
w.write_all(b"Delayed response!")
})
.create();
let actual = nu!(pipeline(
format!(
"http patch --max-time 500ms {url} patchbody",
url = server.url()
)
.as_str()
));
assert!(&actual.err.contains("nu::shell::io_error"));
}

View File

@ -1,3 +1,5 @@
use std::{thread, time::Duration};
use mockito::{Matcher, Server, ServerOpts}; use mockito::{Matcher, Server, ServerOpts};
use nu_test_support::{nu, pipeline}; use nu_test_support::{nu, pipeline};
@ -276,3 +278,25 @@ fn http_post_multipart_is_success() {
assert!(actual.out.is_empty()) assert!(actual.out.is_empty())
} }
#[test]
fn http_post_timeout() {
let mut server = Server::new();
let _mock = server
.mock("POST", "/")
.with_chunked_body(|w| {
thread::sleep(Duration::from_secs(1));
w.write_all(b"Delayed response!")
})
.create();
let actual = nu!(pipeline(
format!(
"http post --max-time 500ms {url} postbody",
url = server.url()
)
.as_str()
));
assert!(&actual.err.contains("nu::shell::io_error"));
}

View File

@ -1,3 +1,5 @@
use std::{thread, time::Duration};
use mockito::Server; use mockito::Server;
use nu_test_support::{nu, pipeline}; use nu_test_support::{nu, pipeline};
@ -162,3 +164,25 @@ fn http_put_redirect_mode_error() {
"Redirect encountered when redirect handling mode was 'error' (301 Moved Permanently)" "Redirect encountered when redirect handling mode was 'error' (301 Moved Permanently)"
)); ));
} }
#[test]
fn http_put_timeout() {
let mut server = Server::new();
let _mock = server
.mock("PUT", "/")
.with_chunked_body(|w| {
thread::sleep(Duration::from_secs(1));
w.write_all(b"Delayed response!")
})
.create();
let actual = nu!(pipeline(
format!(
"http put --max-time 500ms {url} putbody",
url = server.url()
)
.as_str()
));
assert!(&actual.err.contains("nu::shell::io_error"));
}