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

(-)a/t/db_dependent/api/v1/items.t (-7 / +31 lines)
Lines 101-107 subtest 'list() tests' => sub { Link Here
101
101
102
subtest 'get() tests' => sub {
102
subtest 'get() tests' => sub {
103
103
104
    plan tests => 17;
104
    plan tests => 30;
105
105
106
    $schema->storage->txn_begin;
106
    $schema->storage->txn_begin;
107
107
Lines 143-163 subtest 'get() tests' => sub { Link Here
143
143
144
    my $biblio = $builder->build_sample_biblio;
144
    my $biblio = $builder->build_sample_biblio;
145
    my $itype =
145
    my $itype =
146
      $builder->build_object( { class => 'Koha::ItemTypes' } )->itemtype;
146
      $builder->build_object( { class => 'Koha::ItemTypes' } );
147
    $item = $builder->build_sample_item(
147
    $item = $builder->build_sample_item(
148
        { biblionumber => $biblio->biblionumber, itype => $itype } );
148
        { biblionumber => $biblio->biblionumber, itype => $itype->itemtype } );
149
150
    isnt( $biblio->itemtype, $itype->itemtype, "Test biblio level itemtype and item level itemtype do not match");
149
151
150
    $t->get_ok( "//$userid:$password@/api/v1/items/" . $item->itemnumber )
152
    $t->get_ok( "//$userid:$password@/api/v1/items/" . $item->itemnumber )
151
      ->status_is( 200, 'SWAGGER3.2.2' )
153
      ->status_is( 200, 'SWAGGER3.2.2' )
152
      ->json_is( '/item_type_id' => $itype, 'item-level_itypes:0' )
154
      ->json_is( '/item_type_id' => $itype->itemtype, 'item-level_itypes:0' )
153
      ->json_is( '/effective_item_type_id' => $biblio->itemtype, 'item-level_itypes:0' );
155
      ->json_is( '/effective_item_type_id' => $biblio->itemtype, 'item-level_itypes:0' );
154
156
155
    t::lib::Mocks::mock_preference( 'item-level_itypes', 1 );
157
    t::lib::Mocks::mock_preference( 'item-level_itypes', 1 );
156
158
157
    $t->get_ok( "//$userid:$password@/api/v1/items/" . $item->itemnumber )
159
    $t->get_ok( "//$userid:$password@/api/v1/items/" . $item->itemnumber )
158
      ->status_is( 200, 'SWAGGER3.2.2' )
160
      ->status_is( 200, 'SWAGGER3.2.2' )
159
      ->json_is( '/item_type_id' => $itype, 'item-level_itype:1' )
161
      ->json_is( '/item_type_id' => $itype->itemtype, 'item-level_itype:1' )
160
      ->json_is( '/effective_item_type_id' => $itype, 'item-level_itypes:1' );
162
      ->json_is( '/effective_item_type_id' => $itype->itemtype, 'item-level_itypes:1' );
163
164
165
    my $biblio_itype = Koha::ItemTypes->find($biblio->itemtype);
166
    $biblio_itype->notforloan(3)->store();
167
    $itype->notforloan(2)->store();
168
    $item->notforloan(1)->store();
169
170
    $t->get_ok( "//$userid:$password@/api/v1/items/" . $item->itemnumber )
171
      ->status_is( 200, 'SWAGGER3.2.2' )
172
      ->json_is( '/not_for_loan_status' => 1, 'not_for_loan_status is 1' )
173
      ->json_is( '/effective_not_for_loan_status' => 1, 'effective_not_for_loan_status picks up item level' );
174
175
    $item->notforloan(0)->store();
176
    $t->get_ok( "//$userid:$password@/api/v1/items/" . $item->itemnumber )
177
      ->status_is( 200, 'SWAGGER3.2.2' )
178
      ->json_is( '/not_for_loan_status' => 0, 'not_for_loan_status is 0' )
179
      ->json_is( '/effective_not_for_loan_status' => 2, 'effective_not_for_loan_status now picks up itemtype level - item-level_itypes:1' );
180
181
    t::lib::Mocks::mock_preference( 'item-level_itypes', 0 );
182
    $t->get_ok( "//$userid:$password@/api/v1/items/" . $item->itemnumber )
183
      ->status_is( 200, 'SWAGGER3.2.2' )
184
      ->json_is( '/not_for_loan_status' => 0, 'not_for_loan_status is 0' )
185
      ->json_is( '/effective_not_for_loan_status' => 3, 'effective_not_for_loan_status now picks up itemtype level - item-level_itypes:0' );
161
186
162
    $schema->storage->txn_rollback;
187
    $schema->storage->txn_rollback;
163
};
188
};
164
- 

Return to bug 31128