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

(-)a/api/v1/swagger/definitions/item_type.yaml (+2 lines)
Lines 5-10 properties: Link Here
5
    type: string
5
    type: string
6
    description: Unique key, a code associated with the item type
6
    description: Unique key, a code associated with the item type
7
    readOnly: true
7
    readOnly: true
8
    maxLength: 10
9
    minLength: 1
8
  parent_type:
10
  parent_type:
9
    description: Unique key, a code associated with the parent item type
11
    description: Unique key, a code associated with the parent item type
10
    type:
12
    type:
(-)a/t/cypress/integration/KohaTable_spec.ts (-5 / +121 lines)
Lines 488-495 describe("Hit all tables", () => { Link Here
488
488
489
    describe("catalogue/detail/holdings_table", () => {
489
    describe("catalogue/detail/holdings_table", () => {
490
        const table_id = "holdings_table";
490
        const table_id = "holdings_table";
491
        it("correctly init", () => {
491
        beforeEach(() => {
492
            const biblio_id = 1;
492
            // FIXME All the following code should not be reused as it
493
            // It must be moved to a Cypress command or task "buildSampleBiblio" or even "insertSampleBiblio"
494
            let generated_objects = {};
495
            const objects = [{ object: "library" }, { object: "item_type" }];
496
            cy.wrap(Promise.resolve())
497
                .then(() => {
498
                    return objects.reduce((chain, { object }) => {
499
                        return chain.then(() => {
500
                            return cy
501
                                .task("buildSampleObject", { object })
502
                                .then(attributes => {
503
                                    generated_objects[object] = attributes;
504
                                });
505
                        });
506
                    }, Promise.resolve());
507
                })
508
                .then(() => {
509
                    const library = generated_objects["library"];
510
                    const item_type = generated_objects["item_type"];
511
                    const queries = [
512
                        {
513
                            query: "INSERT INTO branches(branchcode, branchname) VALUES (?, ?)",
514
                            values: [library.library_id, library.name],
515
                        },
516
                        {
517
                            query: "INSERT INTO itemtypes(itemtype, description) VALUES (?, ?)",
518
                            values: [
519
                                item_type.item_type_id,
520
                                item_type.description,
521
                            ],
522
                        },
523
                    ];
524
                    cy.wrap(Promise.resolve())
525
                        .then(() => {
526
                            return queries.reduce(
527
                                (chain, { query, values }) => {
528
                                    return chain.then(() =>
529
                                        cy.query(query, values)
530
                                    );
531
                                },
532
                                Promise.resolve()
533
                            );
534
                        })
535
                        .then(() => {
536
                            let biblio = {
537
                                leader: "     nam a22     7a 4500",
538
                                fields: [
539
                                    { "005": "20250120101920.0" },
540
                                    {
541
                                        "245": {
542
                                            ind1: "",
543
                                            ind2: "",
544
                                            subfields: [
545
                                                { a: "Some boring read" },
546
                                            ],
547
                                        },
548
                                    },
549
                                    {
550
                                        "100": {
551
                                            ind1: "",
552
                                            ind2: "",
553
                                            subfields: [
554
                                                { c: "Some boring author" },
555
                                            ],
556
                                        },
557
                                    },
558
                                    {
559
                                        "942": {
560
                                            ind1: "",
561
                                            ind2: "",
562
                                            subfields: [
563
                                                { c: item_type.item_type_id },
564
                                            ],
565
                                        },
566
                                    },
567
                                ],
568
                            };
569
                            cy.request({
570
                                method: "POST",
571
                                url: "/api/v1/biblios",
572
                                auth: {
573
                                    username: "koha",
574
                                    password: "koha",
575
                                },
576
                                headers: {
577
                                    "Content-Type": "application/marc-in-json",
578
                                    "x-confirm-not-duplicate": 1,
579
                                },
580
                                body: biblio,
581
                            }).then(response => {
582
                                const biblio_id = response.body.id;
583
                                cy.wrap(biblio_id).as("biblio_id");
584
                                cy.request({
585
                                    method: "POST",
586
                                    url: `/api/v1/biblios/${biblio_id}/items`,
587
                                    auth: {
588
                                        username: "koha",
589
                                        password: "koha",
590
                                    },
591
                                    headers: {
592
                                        "Content-Type": "application/json",
593
                                    },
594
                                    body: {
595
                                        home_library_id: library.library_id,
596
                                        holding_library_id: library.library_id,
597
                                    },
598
                                });
599
                            });
600
                        });
601
                });
602
        });
603
604
        afterEach(() => {});
605
606
        it("Correctly init the table", function () {
607
            // Do not use `() => {` or this.biblio_id won't be retrieved
608
            const biblio_id = this.biblio_id;
493
            cy.task("buildSampleObjects", {
609
            cy.task("buildSampleObjects", {
494
                object: "item",
610
                object: "item",
495
                count: RESTdefaultPageSize,
611
                count: RESTdefaultPageSize,
Lines 537-544 describe("Hit all tables", () => { Link Here
537
            });
653
            });
538
        });
654
        });
539
655
540
        it("Show filters", () => {
656
        it("Show filters", function () {
541
            const biblio_id = 1;
657
            // Do not use `() => {` or this.biblio_id won't be retrieved
658
            const biblio_id = this.biblio_id;
542
            cy.task("buildSampleObjects", {
659
            cy.task("buildSampleObjects", {
543
                object: "item",
660
                object: "item",
544
                count: RESTdefaultPageSize,
661
                count: RESTdefaultPageSize,
545
- 

Return to bug 38461