Acme-Claude-Shell

 view release on metacpan or  search on metacpan

t/04-session.t  view on Meta::CPAN

#!/usr/bin/env perl
use 5.020;
use strict;
use warnings;
use Test::More;

# Test the Session module structure and attributes

use_ok('Acme::Claude::Shell::Session');

# Test that Session can be instantiated with required attributes
subtest 'Session instantiation' => sub {
    plan tests => 7;

    require IO::Async::Loop;
    my $loop = IO::Async::Loop->new;

    my $session = Acme::Claude::Shell::Session->new(
        loop        => $loop,
        dry_run     => 0,
        safe_mode   => 1,
        working_dir => '/tmp',
        colorful    => 0,
    );

    ok($session, 'Session created');
    isa_ok($session, 'Acme::Claude::Shell::Session');
    is($session->dry_run, 0, 'dry_run attribute');
    is($session->safe_mode, 1, 'safe_mode attribute');
    is($session->working_dir, '/tmp', 'working_dir attribute');
    is($session->colorful, 0, 'colorful attribute');
    is(ref($session->_history), 'ARRAY', '_history is arrayref');
};

# Test optional model attribute
subtest 'Session with model' => sub {
    plan tests => 2;

    require IO::Async::Loop;
    my $loop = IO::Async::Loop->new;

    my $session = Acme::Claude::Shell::Session->new(
        loop  => $loop,
        model => 'claude-sonnet-4-5',
    );

    ok($session->has_model, 'has_model returns true');
    is($session->model, 'claude-sonnet-4-5', 'model attribute');
};

# Test default values
subtest 'Session defaults' => sub {
    plan tests => 4;

    require IO::Async::Loop;
    my $loop = IO::Async::Loop->new;

    my $session = Acme::Claude::Shell::Session->new(
        loop => $loop,
    );

    is($session->dry_run, 0, 'dry_run defaults to 0');
    is($session->safe_mode, 1, 'safe_mode defaults to 1');
    is($session->working_dir, '.', 'working_dir defaults to .');
    is($session->colorful, 1, 'colorful defaults to 1');
};

# Test _history management
subtest 'Session history' => sub {
    plan tests => 3;



( run in 0.492 second using v1.01-cache-2.11-cpan-13bb782fe5a )