use strict;
use warnings;

use Test2::V0;

use OpenAIAsync::Client;

BEGIN {
  no warnings 'uninitialized';
  $ENV{OPENAI_API_KEY}="12345" unless $ENV{OPENAI_API_KEY}eq"12345";
}

ok(lives {
  my $client = OpenAIAsync::Client->new();

  isa_ok($client, "OpenAIAsync::Client");
}, "basic client creation"); 

my $exp = dies {
  my $client = OpenAIAsync::Client->new(bad_option_doesnt_exist => 1);
}; 

ok($exp, "Unknown option kills creation");

like($exp, qr/Unrecognised parameters for OpenAIAsync::Client constructor: 'bad_option_doesnt_exist' at/, "exception text for unknonwn option");

ok lives {
  my $client = OpenAIAsync::Client->new(http_other_options => {});

  isa_ok($client, "OpenAIAsync::Client");
}, "set http options"; 

ok lives {
  my $client = OpenAIAsync::Client->new(io_async_notifier_params=>{});

  isa_ok($client, "OpenAIAsync::Client");
}, "Can give io async notifier options"; 



done_testing();
