mirror of
https://github.com/nushell/nushell.git
synced 2025-05-19 17:30:45 +02:00
85 lines
1.4 KiB
Rust
85 lines
1.4 KiB
Rust
use nu_test_support::nu;
|
|
|
|
#[test]
|
|
fn concat_assign_list_int() {
|
|
let actual = nu!(r#"
|
|
mut a = [1 2];
|
|
$a ++= [3 4];
|
|
$a == [1 2 3 4]
|
|
"#);
|
|
|
|
assert_eq!(actual.out, "true")
|
|
}
|
|
|
|
#[test]
|
|
fn concat_assign_list_string() {
|
|
let actual = nu!(r#"
|
|
mut a = [a b];
|
|
$a ++= [c d];
|
|
$a == [a b c d]
|
|
"#);
|
|
|
|
assert_eq!(actual.out, "true")
|
|
}
|
|
|
|
#[test]
|
|
fn concat_assign_any() {
|
|
let actual = nu!(r#"
|
|
mut a = [1 2 a];
|
|
$a ++= [b 3];
|
|
$a == [1 2 a b 3]
|
|
"#);
|
|
|
|
assert_eq!(actual.out, "true")
|
|
}
|
|
|
|
#[test]
|
|
fn concat_assign_both_empty() {
|
|
let actual = nu!(r#"
|
|
mut a = [];
|
|
$a ++= [];
|
|
$a == []
|
|
"#);
|
|
|
|
assert_eq!(actual.out, "true")
|
|
}
|
|
|
|
#[test]
|
|
fn concat_assign_string() {
|
|
let actual = nu!(r#"
|
|
mut a = 'hello';
|
|
$a ++= ' world';
|
|
$a == 'hello world'
|
|
"#);
|
|
|
|
assert_eq!(actual.out, "true")
|
|
}
|
|
|
|
#[test]
|
|
fn concat_assign_type_mismatch() {
|
|
let actual = nu!(r#"
|
|
mut a = [];
|
|
$a ++= 'str'
|
|
"#);
|
|
|
|
assert!(
|
|
actual
|
|
.err
|
|
.contains("nu::parser::operator_incompatible_types")
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn concat_assign_runtime_type_mismatch() {
|
|
let actual = nu!(r#"
|
|
mut a = [];
|
|
$a ++= if true { 'str' }
|
|
"#);
|
|
|
|
assert!(
|
|
actual
|
|
.err
|
|
.contains("nu::shell::operator_incompatible_types")
|
|
);
|
|
}
|