add testcase
This commit is contained in:
parent
279297425d
commit
64c579517b
|
@ -3,7 +3,7 @@ use nu_test_support::{nu, pipeline};
|
||||||
#[test]
|
#[test]
|
||||||
fn generate_no_next_break() {
|
fn generate_no_next_break() {
|
||||||
let actual = nu!(
|
let actual = nu!(
|
||||||
"generate 1 {|x| if $x == 3 { {out: $x}} else { {out: $x, next: ($x + 1)} }} | to nuon"
|
"generate {|x| if $x == 3 { {out: $x}} else { {out: $x, next: ($x + 1)} }} 1 | to nuon"
|
||||||
);
|
);
|
||||||
|
|
||||||
assert_eq!(actual.out, "[1, 2, 3]");
|
assert_eq!(actual.out, "[1, 2, 3]");
|
||||||
|
@ -11,7 +11,7 @@ fn generate_no_next_break() {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn generate_null_break() {
|
fn generate_null_break() {
|
||||||
let actual = nu!("generate 1 {|x| if $x <= 3 { {out: $x, next: ($x + 1)} }} | to nuon");
|
let actual = nu!("generate {|x| if $x <= 3 { {out: $x, next: ($x + 1)} }} 1 | to nuon");
|
||||||
|
|
||||||
assert_eq!(actual.out, "[1, 2, 3]");
|
assert_eq!(actual.out, "[1, 2, 3]");
|
||||||
}
|
}
|
||||||
|
@ -20,13 +20,13 @@ fn generate_null_break() {
|
||||||
fn generate_allows_empty_output() {
|
fn generate_allows_empty_output() {
|
||||||
let actual = nu!(pipeline(
|
let actual = nu!(pipeline(
|
||||||
r#"
|
r#"
|
||||||
generate 0 {|x|
|
generate {|x|
|
||||||
if $x == 1 {
|
if $x == 1 {
|
||||||
{next: ($x + 1)}
|
{next: ($x + 1)}
|
||||||
} else if $x < 3 {
|
} else if $x < 3 {
|
||||||
{out: $x, next: ($x + 1)}
|
{out: $x, next: ($x + 1)}
|
||||||
}
|
}
|
||||||
} | to nuon
|
} 0 | to nuon
|
||||||
"#
|
"#
|
||||||
));
|
));
|
||||||
|
|
||||||
|
@ -37,11 +37,11 @@ fn generate_allows_empty_output() {
|
||||||
fn generate_allows_no_output() {
|
fn generate_allows_no_output() {
|
||||||
let actual = nu!(pipeline(
|
let actual = nu!(pipeline(
|
||||||
r#"
|
r#"
|
||||||
generate 0 {|x|
|
generate {|x|
|
||||||
if $x < 3 {
|
if $x < 3 {
|
||||||
{next: ($x + 1)}
|
{next: ($x + 1)}
|
||||||
}
|
}
|
||||||
} | to nuon
|
} 0 | to nuon
|
||||||
"#
|
"#
|
||||||
));
|
));
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ fn generate_allows_no_output() {
|
||||||
fn generate_allows_null_state() {
|
fn generate_allows_null_state() {
|
||||||
let actual = nu!(pipeline(
|
let actual = nu!(pipeline(
|
||||||
r#"
|
r#"
|
||||||
generate 0 {|x|
|
generate {|x|
|
||||||
if $x == null {
|
if $x == null {
|
||||||
{out: "done"}
|
{out: "done"}
|
||||||
} else if $x < 1 {
|
} else if $x < 1 {
|
||||||
|
@ -60,7 +60,7 @@ fn generate_allows_null_state() {
|
||||||
} else {
|
} else {
|
||||||
{out: "stopping", next: null}
|
{out: "stopping", next: null}
|
||||||
}
|
}
|
||||||
} | to nuon
|
} 0 | to nuon
|
||||||
"#
|
"#
|
||||||
));
|
));
|
||||||
|
|
||||||
|
@ -71,7 +71,42 @@ fn generate_allows_null_state() {
|
||||||
fn generate_allows_null_output() {
|
fn generate_allows_null_output() {
|
||||||
let actual = nu!(pipeline(
|
let actual = nu!(pipeline(
|
||||||
r#"
|
r#"
|
||||||
generate 0 {|x|
|
generate {|x|
|
||||||
|
if $x == 3 {
|
||||||
|
{out: "done"}
|
||||||
|
} else {
|
||||||
|
{out: null, next: ($x + 1)}
|
||||||
|
}
|
||||||
|
} 0 | to nuon
|
||||||
|
"#
|
||||||
|
));
|
||||||
|
|
||||||
|
assert_eq!(actual.out, "[null, null, null, done]");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn generate_disallows_extra_keys() {
|
||||||
|
let actual = nu!("generate {|x| {foo: bar, out: $x}} 0 ");
|
||||||
|
assert!(actual.err.contains("Invalid block return"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn generate_disallows_list() {
|
||||||
|
let actual = nu!("generate {|x| [$x, ($x + 1)]} 0 ");
|
||||||
|
assert!(actual.err.contains("Invalid block return"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn generate_disallows_primitive() {
|
||||||
|
let actual = nu!("generate {|x| 1} 0");
|
||||||
|
assert!(actual.err.contains("Invalid block return"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn generate_allow_default_parameter() {
|
||||||
|
let actual = nu!(pipeline(
|
||||||
|
r#"
|
||||||
|
generate {|x = 0|
|
||||||
if $x == 3 {
|
if $x == 3 {
|
||||||
{out: "done"}
|
{out: "done"}
|
||||||
} else {
|
} else {
|
||||||
|
@ -82,22 +117,18 @@ fn generate_allows_null_output() {
|
||||||
));
|
));
|
||||||
|
|
||||||
assert_eq!(actual.out, "[null, null, null, done]");
|
assert_eq!(actual.out, "[null, null, null, done]");
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
// if initial is given, use initial value
|
||||||
fn generate_disallows_extra_keys() {
|
let actual = nu!(pipeline(
|
||||||
let actual = nu!("generate 0 {|x| {foo: bar, out: $x}}");
|
r#"
|
||||||
assert!(actual.err.contains("Invalid block return"));
|
generate {|x = 0|
|
||||||
}
|
if $x == 3 {
|
||||||
|
{out: "done"}
|
||||||
#[test]
|
} else {
|
||||||
fn generate_disallows_list() {
|
{out: null, next: ($x + 1)}
|
||||||
let actual = nu!("generate 0 {|x| [$x, ($x + 1)]}");
|
}
|
||||||
assert!(actual.err.contains("Invalid block return"));
|
} 1 | to nuon
|
||||||
}
|
"#
|
||||||
|
));
|
||||||
#[test]
|
assert_eq!(actual.out, "[null, null, done]");
|
||||||
fn generate_disallows_primitive() {
|
|
||||||
let actual = nu!("generate 0 {|x| 1}");
|
|
||||||
assert!(actual.err.contains("Invalid block return"));
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user