Bug 13799: (QA followup) make tests use random data

With the introduction of TestBuilder there's no need to
rely on existing data on the DB (the original patch relies
on categories and branches already existing).

This patch creates a random branch, category and two borrowers
with the fixed data that is needed for the tests. It adjusts
the tests to use the randomized data instead of the previously
fixed one.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
The feature works as expected and all tests passes. koha-qa.pl too.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
Tomás Cohen Arazi 2015-09-24 14:21:55 -03:00
parent 631694cd96
commit 5533d65801

View file

@ -19,6 +19,7 @@ use Modern::Perl;
use Test::More tests => 10;
use Test::Mojo;
use t::lib::TestBuilder;
use C4::Auth;
use C4::Context;
@ -26,6 +27,8 @@ use C4::Context;
use Koha::Database;
use Koha::Borrower;
my $builder = t::lib::TestBuilder->new();
my $dbh = C4::Context->dbh;
$dbh->{AutoCommit} = 0;
$dbh->{RaiseError} = 1;
@ -33,32 +36,34 @@ $dbh->{RaiseError} = 1;
$ENV{REMOTE_ADDR} = '127.0.0.1';
my $t = Test::Mojo->new('Koha::REST::V1');
my $categorycode = Koha::Database->new()->schema()->resultset('Category')->first()->categorycode();
my $branchcode = Koha::Database->new()->schema()->resultset('Branch')->first()->branchcode();
my $borrower = Koha::Borrower->new;
$borrower->categorycode( $categorycode );
$borrower->branchcode( $branchcode );
$borrower->surname("Test Surname");
$borrower->store;
my $borrowernumber = $borrower->borrowernumber;
my $categorycode = $builder->build({ source => 'Category' })->{ categorycode };
my $branchcode = $builder->build({ source => 'Branch' })->{ branchcode };
my $borrower = $builder->build({
source => 'Borrower',
value => {
branchcode => $branchcode,
categorycode => $categorycode
}
});
$t->get_ok('/api/v1/borrowers')
->status_is(403);
$t->get_ok("/api/v1/borrowers/$borrowernumber")
$t->get_ok("/api/v1/borrowers/" . $borrower->{ borrowernumber })
->status_is(403);
my $loggedinuser = Koha::Borrower->new;
$loggedinuser->categorycode($categorycode);
$loggedinuser->branchcode($branchcode);
$loggedinuser->userid('test_rest_api_user');
$loggedinuser->flags(16); # flags for 'borrowers' permission only
$loggedinuser->store;
my $loggedinuser = $builder->build({
source => 'Borrower',
value => {
branchcode => $branchcode,
categorycode => $categorycode,
flags => 16 # borrowers flag
}
});
my $session = C4::Auth::get_session('');
$session->param('number', $loggedinuser->borrowernumber);
$session->param('id', $loggedinuser->userid);
$session->param('number', $loggedinuser->{ borrowernumber });
$session->param('id', $loggedinuser->{ userid });
$session->param('ip', '127.0.0.1');
$session->param('lasttime', time());
$session->flush;
@ -69,11 +74,11 @@ $tx->req->env({REMOTE_ADDR => '127.0.0.1'});
$t->request_ok($tx)
->status_is(200);
$tx = $t->ua->build_tx(GET => "/api/v1/borrowers/$borrowernumber");
$tx = $t->ua->build_tx(GET => "/api/v1/borrowers/" . $borrower->{ borrowernumber });
$tx->req->cookies({name => 'CGISESSID', value => $session->id});
$t->request_ok($tx)
->status_is(200)
->json_is('/borrowernumber' => $borrowernumber)
->json_is('/surname' => "Test Surname");
->json_is('/borrowernumber' => $borrower->{ borrowernumber })
->json_is('/surname' => $borrower->{ surname });
$dbh->rollback;