The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use Test::More;
use Test::Mojo;
use Mojolicious::Lite;
use Mojo::Facebook;

$ENV{FAKE_FACEBOOK_URL} = '/dummy';

my $t = Test::Mojo->new;
my $fb = Mojo::Facebook->new(access_token => 's3cret');
my($req, @res);

get '/dummy/:id' => sub {
    my $c = shift;
    $req = $c->req;
    $c->render(json => { id => $c->stash('id'), name => 'John Doe' });
};

$fb->fetch(
    {
        from => 42,
        fields => ['id,name'],
        limit => 10,
        offset => 1,
    },
    sub { @res = @_; Mojo::IOLoop->stop },
);

Mojo::IOLoop->start;

is $req->url, '/dummy/42?access_token=s3cret&fields=id,name&limit=10&offset=1', 'correct request url';
isa_ok $res[0], 'Mojo::Facebook';
delete $res[1]{__tx};
is_deeply $res[1], { id => 42, name => 'John Doe' }, 'correct response';

done_testing;