Lines 20-26
use Modern::Perl;
Link Here
|
20 |
use utf8; |
20 |
use utf8; |
21 |
use Encode; |
21 |
use Encode; |
22 |
|
22 |
|
23 |
use Test::More tests => 13; |
23 |
use Test::More tests => 14; |
24 |
use Test::MockModule; |
24 |
use Test::MockModule; |
25 |
use Test::Mojo; |
25 |
use Test::Mojo; |
26 |
use Test::Warn; |
26 |
use Test::Warn; |
Lines 1811-1813
subtest 'update_item() tests' => sub {
Link Here
|
1811 |
|
1811 |
|
1812 |
$schema->storage->txn_rollback; |
1812 |
$schema->storage->txn_rollback; |
1813 |
}; |
1813 |
}; |
1814 |
- |
1814 |
|
|
|
1815 |
subtest 'populate_empty_callnumbers() tests' => sub { |
1816 |
plan tests => 23; |
1817 |
|
1818 |
t::lib::Mocks::mock_preference( 'itemcallnumber', '245a' ); |
1819 |
|
1820 |
$schema->storage->txn_begin; |
1821 |
|
1822 |
my $biblio = $builder->build_sample_biblio(); |
1823 |
|
1824 |
my $patron = $builder->build_object( |
1825 |
{ |
1826 |
class => 'Koha::Patrons', |
1827 |
value => { flags => 0 } |
1828 |
} |
1829 |
); |
1830 |
my $password = 'thePassword123'; |
1831 |
$patron->set_password( { password => $password, skip_validation => 1 } ); |
1832 |
my $userid = $patron->userid; |
1833 |
|
1834 |
my $biblio_id = $biblio->id; |
1835 |
|
1836 |
$t->post_ok( "//$userid:$password@/api/v1/biblios/$biblio_id/items/populate_empty_callnumbers" => json => |
1837 |
{ external_id => 'something' } )->status_is( 403, 'Not enough permissions to update an item' ); |
1838 |
|
1839 |
# Add permissions |
1840 |
$builder->build( |
1841 |
{ |
1842 |
source => 'UserPermission', |
1843 |
value => { |
1844 |
borrowernumber => $patron->borrowernumber, |
1845 |
module_bit => 9, |
1846 |
code => 'edit_catalogue' |
1847 |
} |
1848 |
} |
1849 |
); |
1850 |
|
1851 |
t::lib::Mocks::mock_preference( 'itemcallnumber', '245a' ); |
1852 |
$t->post_ok( "//$userid:$password@/api/v1/biblios/$biblio_id/items/populate_empty_callnumbers" => json => {} ) |
1853 |
->status_is( 200, 'Item updated' )->json_is( '/items_updated', 0 ); |
1854 |
t::lib::Mocks::mock_preference( 'itemcallnumber', '' ); |
1855 |
|
1856 |
my $item_1 = $builder->build_sample_item( { biblionumber => $biblio->id, itemcallnumber => q{} } ); |
1857 |
my $item_2 = $builder->build_sample_item( { biblionumber => $biblio->id, itemcallnumber => q{} } ); |
1858 |
my $item_3 = $builder->build_sample_item( { biblionumber => $biblio->id, itemcallnumber => q{} } ); |
1859 |
my $item_4 = $builder->build_sample_item( { biblionumber => $biblio->id, itemcallnumber => q{someCallNumber} } ); |
1860 |
|
1861 |
my $item1_id = $item_1->id; |
1862 |
|
1863 |
$t->post_ok( |
1864 |
"//$userid:$password@/api/v1/biblios/$biblio_id/items/$item1_id/populate_empty_callnumbers" => json => {} ) |
1865 |
->status_is( 404, 'Callnumber fields not found' ); |
1866 |
|
1867 |
t::lib::Mocks::mock_preference( 'itemcallnumber', '245$a' ); |
1868 |
|
1869 |
$t->post_ok( |
1870 |
"//$userid:$password@/api/v1/biblios/$biblio_id/items/$item1_id/populate_empty_callnumbers" => json => {} ) |
1871 |
->status_is( 200, 'Item updated' )->json_is( '/items_updated', 1 ) |
1872 |
->json_is( '/callnumber', 'Some boring read' ); |
1873 |
|
1874 |
$t->post_ok( "//$userid:$password@/api/v1/biblios/$biblio_id/items/populate_empty_callnumbers" => json => {} ) |
1875 |
->status_is( 200, 'Items updated' )->json_is( '/items_updated', 2 ) |
1876 |
->json_is( '/callnumber', 'Some boring read' ); |
1877 |
|
1878 |
$t->post_ok( "//$userid:$password@/api/v1/biblios/$biblio_id/items/populate_empty_callnumbers" => json => {} ) |
1879 |
->status_is( 200, 'Items updated' )->json_is( '/items_updated', 0 ); |
1880 |
|
1881 |
$t->post_ok( |
1882 |
"//$userid:$password@/api/v1/biblios/$biblio_id/items/$item1_id/populate_empty_callnumbers" => json => {} ) |
1883 |
->status_is( 200, 'Item updated' )->json_is( '/items_updated', 0 ); |
1884 |
|
1885 |
$t->post_ok( "//$userid:$password@/api/v1/biblios/0/items/$item1_id/populate_empty_callnumbers" => json => {} ) |
1886 |
->status_is( 404, 'Record not found' ); |
1887 |
|
1888 |
$schema->storage->txn_rollback; |
1889 |
|
1890 |
}; |