1#!/usr/bin/env perl 2use warnings; 3use strict; 4use Prophet::Test; 5use App::SD::Test; 6$ENV{'PROPHET_EMAIL'} = 'onlooker@example.com'; 7 8BEGIN { 9 if ( $ENV{'JIFTY_APP_ROOT'} ) { 10 plan tests => 7; 11 require File::Temp; 12 $ENV{'PROPHET_REPO'} = $ENV{'SD_REPO'} = File::Temp::tempdir( CLEANUP => 1 ) . '/_svb'; 13 diag $ENV{'PROPHET_REPO'}; 14 eval "use Jifty"; 15 push @INC, File::Spec->catdir( Jifty::Util->app_root, "lib" ); 16 } else { 17 plan skip_all => "You must define a JIFTY_APP_ROOT environment variable which points to your hiveminder source tree"; 18 } 19} 20 21eval 'use BTDT::Test; 1;' or die "$@"; 22 23my $server = BTDT::Test->make_server; 24my $URL = $server->started_ok; 25$URL =~ s|http://|http://onlooker\@example.com:something@|; 26my $sd_hm_url = "hm:$URL"; 27 28ok( 1, "Loaded the test script" ); 29my $root = BTDT::CurrentUser->superuser; 30my $as_root = BTDT::Model::User->new( current_user => $root ); 31$as_root->load_by_cols( email => 'onlooker@example.com' ); 32my ( $val, $msg ) = $as_root->set_accepted_eula_version( Jifty->config->app('EULAVersion') ); 33ok( $val, $msg ); 34my $GOODUSER = BTDT::CurrentUser->new( email => 'onlooker@example.com' ); 35$GOODUSER->user_object->set_accepted_eula_version( Jifty->config->app('EULAVersion') ); 36 37my $task = BTDT::Model::Task->new( current_user => $GOODUSER ); 38$task->create( 39 summary => "YATTA", 40 description => '', 41); 42my $remote_id = $task->id; 43 44my ($yatta_uuid, $yatta_id); 45{ 46 my ($ret, $out, $err) 47 = run_script( 'sd', 48 [ 'clone', '--from', $sd_hm_url, '--non-interactive' ] ); 49 50 run_output_matches( 'sd', [qw(ticket list --regex .)], [qr/(.*?)(?{ $yatta_uuid = $1 }) YATTA (.*)/] ); 51 ( $ret, $out, $err ) = run_script( 'sd', [ qw(ticket show --batch --id), $yatta_uuid ] ); 52 diag($out); 53 diag($err); 54 ($yatta_id, $yatta_uuid) = ($1, $2) if $out =~ /^id: (\d+)\s*\((.*)\)/m; 55} 56 57is_script_output( 'sd', [ qw(ticket update --uuid), $yatta_uuid, qw(-- --summary BLABLA) ], 58 [qr/ticket \d+ \(\Q$yatta_uuid\E\) updated./i], # stdout 59 [undef], # stderr 60 "updated summary" 61); 62{ 63 my ( $ret, $out, $err ) = run_script( 'sd', [ 'push','--to', $sd_hm_url ] ); 64 65 my $task = BTDT::Model::Task->new( current_user => $GOODUSER ); 66 ok( $task->load_by_cols( summary => 'BLABLA' ), "loaded a task" ); 67 is( $task->id, $remote_id, "the same task" ); 68} 69 70