mirror of
https://github.com/nushell/nushell.git
synced 2025-06-30 22:50:14 +02:00
*code refactor from PR tips & clippy fixes *added username, password, and fragment *commands `url host`, `url scheme`, `url query`, and `url path` removed *tests refactoring - avoid formatted output
This commit is contained in:
1
crates/nu-command/tests/commands/url/mod.rs
Normal file
1
crates/nu-command/tests/commands/url/mod.rs
Normal file
@ -0,0 +1 @@
|
||||
mod parse;
|
159
crates/nu-command/tests/commands/url/parse.rs
Normal file
159
crates/nu-command/tests/commands/url/parse.rs
Normal file
@ -0,0 +1,159 @@
|
||||
use nu_test_support::{nu, pipeline};
|
||||
|
||||
#[test]
|
||||
fn url_parse_simple() {
|
||||
let actual = nu!(
|
||||
cwd: ".", pipeline(
|
||||
r#"
|
||||
("https://www.abc.com"
|
||||
| url parse)
|
||||
== {
|
||||
scheme: 'https',
|
||||
username: '',
|
||||
password: '',
|
||||
host: 'www.abc.com',
|
||||
port: '',
|
||||
path: '/',
|
||||
query: '',
|
||||
fragment: '',
|
||||
params: {}
|
||||
}
|
||||
"#
|
||||
));
|
||||
assert_eq!(actual.out, "true");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn url_parse_with_port() {
|
||||
let actual = nu!(
|
||||
cwd: ".", pipeline(
|
||||
r#"
|
||||
("https://www.abc.com:8011"
|
||||
| url parse)
|
||||
== {
|
||||
scheme: 'https',
|
||||
username: '',
|
||||
password: '',
|
||||
host: 'www.abc.com',
|
||||
port: '8011',
|
||||
path: '/',
|
||||
query: '',
|
||||
fragment: '',
|
||||
params: {}
|
||||
}
|
||||
"#
|
||||
));
|
||||
|
||||
assert_eq!(actual.out, "true");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn url_parse_with_path() {
|
||||
let actual = nu!(
|
||||
cwd: ".", pipeline(
|
||||
r#"
|
||||
("http://www.abc.com:8811/def/ghj"
|
||||
| url parse)
|
||||
== {
|
||||
scheme: 'http',
|
||||
username: '',
|
||||
password: '',
|
||||
host: 'www.abc.com',
|
||||
port: '8811',
|
||||
path: '/def/ghj',
|
||||
query: '',
|
||||
fragment: '',
|
||||
params: {}
|
||||
}
|
||||
"#
|
||||
));
|
||||
|
||||
assert_eq!(actual.out, "true");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn url_parse_with_params() {
|
||||
let actual = nu!(
|
||||
cwd: ".", pipeline(
|
||||
r#"
|
||||
("http://www.abc.com:8811/def/ghj?param1=11¶m2="
|
||||
| url parse)
|
||||
== {
|
||||
scheme: 'http',
|
||||
username: '',
|
||||
password: '',
|
||||
host: 'www.abc.com',
|
||||
port: '8811',
|
||||
path: '/def/ghj',
|
||||
query: 'param1=11¶m2=',
|
||||
fragment: '',
|
||||
params: {param1: '11', param2: ''}
|
||||
}
|
||||
"#
|
||||
));
|
||||
|
||||
assert_eq!(actual.out, "true");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn url_parse_with_fragment() {
|
||||
let actual = nu!(
|
||||
cwd: ".", pipeline(
|
||||
r#"
|
||||
("http://www.abc.com:8811/def/ghj?param1=11¶m2=#hello-fragment"
|
||||
| url parse)
|
||||
== {
|
||||
scheme: 'http',
|
||||
username: '',
|
||||
password: '',
|
||||
host: 'www.abc.com',
|
||||
port: '8811',
|
||||
path: '/def/ghj',
|
||||
query: 'param1=11¶m2=',
|
||||
fragment: 'hello-fragment',
|
||||
params: {param1: '11', param2: ''}
|
||||
}
|
||||
"#
|
||||
));
|
||||
|
||||
assert_eq!(actual.out, "true");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn url_parse_with_username_and_password() {
|
||||
let actual = nu!(
|
||||
cwd: ".", pipeline(
|
||||
r#"
|
||||
("http://user123:password567@www.abc.com:8811/def/ghj?param1=11¶m2=#hello-fragment"
|
||||
| url parse)
|
||||
== {
|
||||
scheme: 'http',
|
||||
username: 'user123',
|
||||
password: 'password567',
|
||||
host: 'www.abc.com',
|
||||
port: '8811',
|
||||
path: '/def/ghj',
|
||||
query: 'param1=11¶m2=',
|
||||
fragment: 'hello-fragment',
|
||||
params: {param1: '11', param2: ''}
|
||||
}
|
||||
"#
|
||||
));
|
||||
|
||||
assert_eq!(actual.out, "true");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn url_parse_error_empty_url() {
|
||||
let actual = nu!(
|
||||
cwd: ".", pipeline(
|
||||
r#"
|
||||
""
|
||||
| url parse
|
||||
"#
|
||||
));
|
||||
|
||||
assert!(actual.err.contains(
|
||||
"Incomplete or incorrect url. Expected a full url, e.g., https://www.example.com"
|
||||
));
|
||||
}
|
Reference in New Issue
Block a user