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:
parent
631694cd96
commit
5533d65801
1 changed files with 26 additions and 21 deletions
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue