X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fgraphql-client;a=blobdiff_plain;f=t%2Fcli.t;h=a32af83b333f6189b694c70185f0d36b0e2a0cc6;hp=2ae980e4f0a76e55785ba01d8da9fd56ff1bd404;hb=HEAD;hpb=1a966ff0db27d934fce36e2bd43ea6aace0a7555 diff --git a/t/cli.t b/t/cli.t index 2ae980e..142f2e5 100755 --- a/t/cli.t +++ b/t/cli.t @@ -8,9 +8,12 @@ use Test::More; use GraphQL::Client::CLI; +delete $ENV{GRAPHQL_CLIENT_OPTIONS}; + subtest 'get_options' => sub { my $expected = { format => 'json:pretty', + filter => undef, help => undef, manual => undef, operation_name => undef, @@ -31,8 +34,39 @@ subtest 'get_options' => sub { $r = GraphQL::Client::CLI->_get_options(qw{foo bar}); is_deeply($r, $expected, '--query is also optional') or diag explain $r; + + { + local $ENV{GRAPHQL_CLIENT_OPTIONS} = '--url asdf --query "baz qux" --unpack'; + local $expected->{query} = 'baz qux'; + local $expected->{unpack} = 1; + $r = GraphQL::Client::CLI->_get_options(qw{--url foo}); + is_deeply($r, $expected, 'options can come from GRAPHQL_CLIENT_OPTIONS') or diag explain $r; + } +}; + +subtest 'get_options_transport' => sub { + my $expected = { + format => 'json:pretty', + filter => undef, + help => undef, + manual => undef, + operation_name => undef, + outfile => undef, + query => 'bar', + transport => { headers => {'X-Test' => 'value', 'X-Test-2' => 'val2' } }, + unpack => 0, + url => 'foo', + variables => undef, + version => undef, + }; + + my $r = GraphQL::Client::CLI->_get_options(qw{--url foo --query bar --transport headers.X-Test=value --transport headers.X-Test-2=val2}); + is_deeply($r, $expected, '--url, --query set option and correctly expanded transport options') or diag explain $r; }; + + + subtest 'expand_vars' => sub { my $r = GraphQL::Client::CLI::_expand_vars({ 'foo.bar' => 'baz',