AnyEvent-WebSocket-Client

 view release on metacpan or  search on metacpan

t/lib/Test2/Tools/WebSocket/Mojo.pm  view on Meta::CPAN

package Test2::Tools::WebSocket::Mojo;

use strict;
use warnings;
use base qw( Exporter );
use Mojo::Server::Daemon;
use Test2::API qw( context );

our @EXPORT_OK = qw( start_mojo );

sub start_mojo
{
  my (%args) = @_;
  my $app = $args{app};
  my $scheme = $args{ssl} ? "https" : "http";
  my $server = Mojo::Server::Daemon->new;
  my $port = generate_port();
  my $ctx = context();
  $ctx->note("port = $port");
  $ctx->release;
  $server->app($app);
  $server->listen(["$scheme://127.0.0.1:$port"]);
  $server->start;
  return ($server, $port);
}

sub generate_port
{
  IO::Socket::INET->new(Listen => 5, LocalAddr => '127.0.0.1')->sockport
}

1;



( run in 1.068 second using v1.01-cache-2.11-cpan-acf6aa7dc9e )