The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package App::Record;
use Any::Moose;
extends 'Prophet::Record';

package App::Record::Thingy;
use Any::Moose;
extends 'App::Record';

sub type {'foo'}

package main;
use warnings;
use strict;
use File::Temp qw/tempdir/;
$ENV{'PROPHET_REPO'} =
  tempdir( CLEANUP => !$ENV{PROPHET_DEBUG} ) . '/repo-' . $$;

use Prophet::Test tests => 8;
use Test::Exception;

my $cli = Prophet::CLI->new();

$cli->handle->initialize;

my $rec = App::Record::Thingy->new( handle => $cli->handle, type => 'foo' );

ok( $rec->create( props => { foo => 'bar', point => '123' } ) );
is( $rec->prop('foo'),   'bar' );
is( $rec->prop('point'), '123' );
ok( $rec->set_props( props => { foo => 'abc' } ) );
is( $rec->prop('foo'), 'abc' );
ok( $rec->set_props( props => { foo => 'def' } ) );
is( $rec->prop('foo'), 'def' );
my @history = $rec->changesets();
is( scalar @history, 3 );