View | Details | Raw Unified | Return to bug 39419
Collapse All | Expand All

(-)a/t/db_dependent/Reserves.t (-2 / +75 lines)
Lines 17-23 Link Here
17
17
18
use Modern::Perl;
18
use Modern::Perl;
19
19
20
use Test::More tests => 70;
20
use Test::More tests => 71;
21
use Test::NoWarnings;
21
use Test::NoWarnings;
22
use Test::MockModule;
22
use Test::MockModule;
23
use Test::Warn;
23
use Test::Warn;
Lines 1507-1513 subtest 'IsAvailableForItemLevelRequest() tests' => sub { Link Here
1507
1507
1508
subtest 'AddReserve() tests' => sub {
1508
subtest 'AddReserve() tests' => sub {
1509
1509
1510
    plan tests => 2;
1510
    plan tests => 4;
1511
1511
1512
    $schema->storage->txn_begin;
1512
    $schema->storage->txn_begin;
1513
1513
Lines 1553-1558 subtest 'AddReserve() tests' => sub { Link Here
1553
    $patron->discard_changes;
1553
    $patron->discard_changes;
1554
    isnt( $patron->lastseen, undef, "Patron activity tracked when hold is a valid trigger" );
1554
    isnt( $patron->lastseen, undef, "Patron activity tracked when hold is a valid trigger" );
1555
1555
1556
    my $reserve_id = AddReserve(
1557
        {
1558
            branchcode      => $library->branchcode,
1559
            borrowernumber  => $patron->id,
1560
            biblionumber    => $biblio->id,
1561
            expiration_date => '2040-04-02'
1562
        }
1563
    );
1564
1565
    my $hold = Koha::Holds->find($reserve_id);
1566
1567
    is( $hold->expirationdate, '2040-04-02', 'Successfully set expiration date' );
1568
1569
    $reserve_id = AddReserve(
1570
        {
1571
            branchcode             => $library->branchcode,
1572
            borrowernumber         => $patron->id,
1573
            biblionumber           => $biblio->id,
1574
            patron_expiration_date => '2040-04-02'
1575
        }
1576
    );
1577
1578
    $hold = Koha::Holds->find($reserve_id);
1579
    is( $hold->patron_expiration_date, '2040-04-02', 'Successfully set patron expiration date' );
1580
1581
    $schema->storage->txn_rollback;
1582
};
1583
1584
subtest 'ModReserve() tests' => sub {
1585
1586
    plan tests => 2;
1587
1588
    $schema->storage->txn_begin;
1589
1590
    my $library = $builder->build_object( { class => 'Koha::Libraries' } );
1591
    my $patron  = $builder->build_object( { class => 'Koha::Patrons', value => { lastseen => undef } } );
1592
    my $biblio  = $builder->build_sample_biblio;
1593
1594
    my $reserve_id = AddReserve(
1595
        {
1596
            branchcode     => $library->branchcode,
1597
            borrowernumber => $patron->id,
1598
            biblionumber   => $biblio->id,
1599
        }
1600
    );
1601
1602
    my $hold = Koha::Holds->find($reserve_id);
1603
1604
    ModReserve(
1605
        {
1606
            reserve_id     => $hold->id,
1607
            branchcode     => $hold->branchcode,
1608
            expirationdate => '2040-04-02',
1609
            rank           => $hold->priority,
1610
            reservedate    => $hold->reservedate,
1611
        }
1612
    );
1613
1614
    $hold = Koha::Holds->find($reserve_id);
1615
    is( $hold->expirationdate, '2040-04-02', 'Successfully updated expiration date' );
1616
1617
    ModReserve(
1618
        {
1619
            reserve_id             => $reserve_id,
1620
            rank                   => $hold->priority,
1621
            patron_expiration_date => '2040-04-02',
1622
            branchcode             => $hold->branchcode,
1623
        }
1624
    );
1625
1626
    $hold = Koha::Holds->find($reserve_id);
1627
    is( $hold->patron_expiration_date, '2040-04-02', 'Successfully updated patron expiration date' );
1628
1556
    $schema->storage->txn_rollback;
1629
    $schema->storage->txn_rollback;
1557
};
1630
};
1558
1631
(-)a/t/db_dependent/api/v1/holds.t (-9 / +52 lines)
Lines 1207-1213 subtest 'pickup_locations() tests' => sub { Link Here
1207
1207
1208
subtest 'edit() tests' => sub {
1208
subtest 'edit() tests' => sub {
1209
1209
1210
    plan tests => 47;
1210
    plan tests => 61;
1211
1211
1212
    $schema->storage->txn_begin;
1212
    $schema->storage->txn_begin;
1213
1213
Lines 1321-1326 subtest 'edit() tests' => sub { Link Here
1321
    is( $biblio_hold->reservedate,    '2022-01-02', 'Hold date changed correctly' );
1321
    is( $biblio_hold->reservedate,    '2022-01-02', 'Hold date changed correctly' );
1322
    is( $biblio_hold->expirationdate, '2022-03-02', 'Expiration date changed correctly' );
1322
    is( $biblio_hold->expirationdate, '2022-03-02', 'Expiration date changed correctly' );
1323
1323
1324
    $biblio_hold_data = {
1325
        patron_expiration_date => '2022-05-02',
1326
    };
1327
1328
    $t->patch_ok( "//$userid:$password@/api/v1/holds/" . $biblio_hold->id => json => $biblio_hold_data )
1329
        ->status_is(200);
1330
1331
    $biblio_hold->discard_changes;
1332
    is( $biblio_hold->patron_expiration_date, '2022-05-02', 'Patron expiration date changed correctly' );
1333
1334
    $biblio_hold_data = {
1335
        expiration_date        => '2022-07-02',
1336
        patron_expiration_date => '2022-09-02',
1337
    };
1338
1339
    $t->patch_ok( "//$userid:$password@/api/v1/holds/" . $biblio_hold->id => json => $biblio_hold_data )
1340
        ->status_is(200);
1341
1342
    $biblio_hold->discard_changes;
1343
    is( $biblio_hold->expirationdate,         '2022-07-02', 'Expiration date changed correctly' );
1344
    is( $biblio_hold->patron_expiration_date, '2022-09-02', 'Patron expiration date changed correctly' );
1345
1324
    # Test item-level holds
1346
    # Test item-level holds
1325
    my $item_hold = $builder->build_object(
1347
    my $item_hold = $builder->build_object(
1326
        {
1348
        {
Lines 1383-1388 subtest 'edit() tests' => sub { Link Here
1383
    is( $item_hold->reservedate,    '2022-01-02', 'Hold date changed correctly' );
1405
    is( $item_hold->reservedate,    '2022-01-02', 'Hold date changed correctly' );
1384
    is( $item_hold->expirationdate, '2022-03-02', 'Expiration date changed correctly' );
1406
    is( $item_hold->expirationdate, '2022-03-02', 'Expiration date changed correctly' );
1385
1407
1408
    $item_hold_data = { patron_expiration_date => '2022-05-02' };
1409
1410
    $t->patch_ok( "//$userid:$password@/api/v1/holds/" . $item_hold->id => json => $item_hold_data )->status_is(200);
1411
1412
    $item_hold->discard_changes;
1413
    is( $item_hold->patron_expiration_date, '2022-05-02', 'Patron expiration date changed correctly' );
1414
1415
    $item_hold_data = {
1416
        expiration_date        => '2022-07-02',
1417
        patron_expiration_date => '2022-09-02',
1418
    };
1419
1420
    $t->patch_ok( "//$userid:$password@/api/v1/holds/" . $item_hold->id => json => $item_hold_data )->status_is(200);
1421
1422
    $item_hold->discard_changes;
1423
    is( $item_hold->expirationdate,         '2022-07-02', 'Expiration date changed correctly' );
1424
    is( $item_hold->patron_expiration_date, '2022-09-02', 'Patron expiration date changed correctly' );
1425
1386
    $schema->storage->txn_rollback;
1426
    $schema->storage->txn_rollback;
1387
1427
1388
};
1428
};
Lines 1479-1484 subtest 'add() tests' => sub { Link Here
1479
        biblio_id         => $biblio_hold_api_data->{biblio_id},
1519
        biblio_id         => $biblio_hold_api_data->{biblio_id},
1480
        patron_id         => $biblio_hold_api_data->{patron_id},
1520
        patron_id         => $biblio_hold_api_data->{patron_id},
1481
        pickup_library_id => $library_1->branchcode,
1521
        pickup_library_id => $library_1->branchcode,
1522
        expiration_date   => '2022-11-02',
1482
    };
1523
    };
1483
1524
1484
    $t->post_ok( "//$userid:$password@/api/v1/holds" => json => $biblio_hold_data )->status_is(400)
1525
    $t->post_ok( "//$userid:$password@/api/v1/holds" => json => $biblio_hold_data )->status_is(400)
Lines 1505-1513 subtest 'add() tests' => sub { Link Here
1505
    $biblio_hold_api_data = $biblio_hold->to_api;
1546
    $biblio_hold_api_data = $biblio_hold->to_api;
1506
    $biblio_hold->delete;
1547
    $biblio_hold->delete;
1507
    $biblio_hold_data = {
1548
    $biblio_hold_data = {
1508
        biblio_id         => $biblio_hold_api_data->{biblio_id},
1549
        biblio_id              => $biblio_hold_api_data->{biblio_id},
1509
        patron_id         => $biblio_hold_api_data->{patron_id},
1550
        patron_id              => $biblio_hold_api_data->{patron_id},
1510
        pickup_library_id => $library_1->branchcode,
1551
        pickup_library_id      => $library_1->branchcode,
1552
        patron_expiration_date => '2022-11-02',
1511
    };
1553
    };
1512
1554
1513
    $t->post_ok( "//$userid:$password@/api/v1/holds" => json => $biblio_hold_data )->status_is(400)
1555
    $t->post_ok( "//$userid:$password@/api/v1/holds" => json => $biblio_hold_data )->status_is(400)
Lines 1532-1541 subtest 'add() tests' => sub { Link Here
1532
    my $item_hold_api_data = $item_hold->to_api;
1574
    my $item_hold_api_data = $item_hold->to_api;
1533
    $item_hold->delete;
1575
    $item_hold->delete;
1534
    my $item_hold_data = {
1576
    my $item_hold_data = {
1535
        biblio_id         => $item_hold_api_data->{biblio_id},
1577
        biblio_id              => $item_hold_api_data->{biblio_id},
1536
        item_id           => $item_hold_api_data->{item_id},
1578
        item_id                => $item_hold_api_data->{item_id},
1537
        patron_id         => $item_hold_api_data->{patron_id},
1579
        patron_id              => $item_hold_api_data->{patron_id},
1538
        pickup_library_id => $library_1->branchcode,
1580
        pickup_library_id      => $library_1->branchcode,
1581
        expiration_date        => '2022-11-02',
1582
        patron_expiration_date => '2022-11-02',
1539
    };
1583
    };
1540
1584
1541
    $t->post_ok( "//$userid:$password@/api/v1/holds" => json => $item_hold_data )->status_is(400)
1585
    $t->post_ok( "//$userid:$password@/api/v1/holds" => json => $item_hold_data )->status_is(400)
1542
- 

Return to bug 39419