#! /usr/bin/env perl # -*- perl -*-
BEGIN {
my
$test_dir
= __FILE__;
$test_dir
=~ s/[-a-z0-9]+\.t$//i;
unshift
@INC
,
$test_dir
;
}
my
$hello_js
=
"console.log('Hello, world!')\n"
;
my
$echo_js
=
"console.log(__perl__.input)\n"
;
my
$return_js
=
"__perl__.return = 'Hello, world!'"
;
my
$input_json
=
qq{{"foo":"bar"}
};
my
$input_yaml
=
<<EOF;
---
foo: 'bar'
EOF
my
$input_pm
=
<<'EOF';
$VAR1 = {
'foo' => 'bar'
};
EOF
my
$input_storable
= freeze {
foo
=>
'bar'
};
my
$site
= TestSite->new(
name
=>
'command-javascript'
,
files
=> {
'hello.js'
=>
$hello_js
,
'echo.js'
=>
$echo_js
,
'return.js'
=>
$return_js
,
'input.json'
=>
$input_json
,
'input.yaml'
=>
$input_yaml
,
'input.pm'
=>
$input_pm
,
'input.storable'
=>
$input_storable
});
ok -e
'./hello.js'
;
ok -e
'./echo.js'
;
ok -e
'./return.js'
;
ok -e
'./input.json'
;
ok -e
'./input.yaml'
;
ok -e
'./input.pm'
;
ok -e
'./input.storable'
;
my
$stdout
;
ok (Qgoda::CLI->new([
'js'
,
'--no-output'
,
'./hello.js'
])->dispatch);
$stdout
= Qgoda->new->jsout;
is
$stdout
,
"Hello, world!\n"
;
ok (Qgoda::CLI->new([
'js'
,
'--no-output'
,
'--input'
,
'./input.json'
,
'./echo.js'
])->dispatch);
$stdout
= Qgoda->new->jsout;
is
$stdout
,
"{foo: 'bar'}\n"
;
ok (Qgoda::CLI->new([
'js'
,
'--no-output'
,
'--input-format'
,
'json'
,
'--input'
,
'./input.json'
,
'./echo.js'
])->dispatch);
$stdout
= Qgoda->new->jsout;
is
$stdout
,
"{foo: 'bar'}\n"
;
ok (Qgoda::CLI->new([
'js'
,
'--no-output'
,
'--input-format'
,
'JSON'
,
'--input-data'
,
$input_json
,
'./echo.js'
])->dispatch);
$stdout
= Qgoda->new->jsout;
is
$stdout
,
"{foo: 'bar'}\n"
;
ok (Qgoda::CLI->new([
'js'
,
'--no-output'
,
'./return.js'
])->dispatch);
my
$jsreturn
= Qgoda->new->jsreturn;
is
$jsreturn
,
'Hello, world!'
;
$site
->tearDown;
done_testing;