The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# vi:filetype=

my $ExePath;
BEGIN {
    use FindBin;
    $ExePath = "$FindBin::Bin/../haskell/bin/restyscript";
    if (!-f $ExePath) {
        $skip = "$ExePath is not found.\n";
        return;
    }
    if (!-x $ExePath) {
        $skip = "$ExePath is not an executable.\n";
        return;
    }
};
use t::OpenResty $skip ? (skip_all => $skip) : ();

plan tests => 3 * blocks();

run_tests;

__DATA__

=== TEST 1: Delete existing actions
--- request
DELETE /=/action?_user=$TestAccount&_password=$TestPass&_use_cookie=1
--- response
{"success":1,"warning":"Builtin actions were skipped."}



=== TEST 2: Create an action with builtin vars
--- request
POST /=/action/Foo
{ "description": "test builtin vars",
  "definition": "select $_ACCOUNT as account, $_ROLE as role;" }
--- response
{"success":1}



=== TEST 3: Invoke the action with explicit variable binding
--- request
GET /=/action/Foo/_ACCOUNT/32?_ROLE=56
--- response
[[{"account":"tester","role":"Admin"}]]



=== TEST 4: Invoke the action w/o binding
--- request
GET /=/action/Foo/~/~
--- response
[[{"account":"tester","role":"Admin"}]]



=== TEST 5: Create an action with non-recognized builtin vars
--- request
POST /=/action/Bar
{ "description": "test builtin vars",
  "definition": "select $_blah as account, $_foo as role;" }
--- response
{"success":0,"error":"Unknown built-in parameter: _blah"}