|
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', '' ); |
| 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 => { external_id => 'something' }) |
| 1837 |
->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->post_ok("//$userid:$password@/api/v1/biblios/$biblio_id/items/populate_empty_callnumbers" => json => {} ) |
| 1852 |
->status_is(200, 'Item updated') |
| 1853 |
->json_is('/items_updated', 0); |
| 1854 |
|
| 1855 |
my $item_1 = $builder->build_sample_item( { biblionumber => $biblio->id, itemcallnumber => q{} } ); |
| 1856 |
my $item_2 = $builder->build_sample_item( { biblionumber => $biblio->id, itemcallnumber => q{} } ); |
| 1857 |
my $item_3 = $builder->build_sample_item( { biblionumber => $biblio->id, itemcallnumber => q{} } ); |
| 1858 |
my $item_4 = $builder->build_sample_item( { biblionumber => $biblio->id, itemcallnumber => q{someCallNumber} } ); |
| 1859 |
|
| 1860 |
my $item1_id = $item_1->id; |
| 1861 |
|
| 1862 |
$t->post_ok("//$userid:$password@/api/v1/biblios/$biblio_id/items/$item1_id/populate_empty_callnumbers" => json => {} ) |
| 1863 |
->status_is(404, 'Callnumber fields not found'); |
| 1864 |
|
| 1865 |
t::lib::Mocks::mock_preference( 'itemcallnumber', '245$a' ); |
| 1866 |
|
| 1867 |
$t->post_ok("//$userid:$password@/api/v1/biblios/$biblio_id/items/$item1_id/populate_empty_callnumbers" => json => {} ) |
| 1868 |
->status_is(200, 'Item updated') |
| 1869 |
->json_is('/items_updated', 1) |
| 1870 |
->json_is('/callnumber', 'Some boring read'); |
| 1871 |
|
| 1872 |
$t->post_ok("//$userid:$password@/api/v1/biblios/$biblio_id/items/populate_empty_callnumbers" => json => {} ) |
| 1873 |
->status_is(200, 'Items updated') |
| 1874 |
->json_is('/items_updated', 2) |
| 1875 |
->json_is('/callnumber', 'Some boring read'); |
| 1876 |
|
| 1877 |
$t->post_ok("//$userid:$password@/api/v1/biblios/$biblio_id/items/populate_empty_callnumbers" => json => {} ) |
| 1878 |
->status_is(200, 'Items updated') |
| 1879 |
->json_is('/items_updated', 0); |
| 1880 |
|
| 1881 |
$t->post_ok("//$userid:$password@/api/v1/biblios/$biblio_id/items/$item1_id/populate_empty_callnumbers" => json => {} ) |
| 1882 |
->status_is(200, 'Item updated') |
| 1883 |
->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 |
}; |