From e7b98cf44bbfe4b108ed4894cef42275a4ebeaac Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Wed, 18 Jun 2025 14:20:29 +0200 Subject: [PATCH] Bug 40181: Make sure data won't be added by insertData We are here testing that data inserted by insertData tasks can be easily removed from the DB using deleteSampleObjects Test plan: Cypress test t/cypress/integration/t/insertData.ts must pass --- t/cypress/integration/t/insertData.ts | 46 +++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/t/cypress/integration/t/insertData.ts b/t/cypress/integration/t/insertData.ts index b5ba8cae406..69a45c84644 100644 --- a/t/cypress/integration/t/insertData.ts +++ b/t/cypress/integration/t/insertData.ts @@ -7,6 +7,32 @@ const { APIClient } = require("./../../plugins/dist/api-client.cjs.js"); let client = APIClient.default; describe("insertData", () => { + + let tablesToCheck = [ + "borrowers", + "branches", + "items", + "biblio", + "reserves", + ]; + beforeEach(() => { + const counts = {}; + + const queries = tablesToCheck.map(table => { + return cy + .task("query", { + sql: `SELECT COUNT(*) as count FROM ${table}`, + }) + .then(result => { + counts[table] = result[0].count; + }); + }); + + cy.wrap(Promise.all(queries)).then(() => { + cy.wrap(counts).as("initialCounts"); + }); + }); + describe("insertSampleBiblio", () => { it("should generate library and item type", () => { cy.task("insertSampleBiblio", { item_count: 3 }).then(objects => { @@ -175,4 +201,24 @@ describe("insertData", () => { ); }); }); + + afterEach(function () { + cy.get("@initialCounts").then(initialCounts => { + const queries = tablesToCheck.map(table => { + return cy + .task("query", { + sql: `SELECT COUNT(*) as count FROM ${table}`, + }) + .then(result => { + const finalCount = result[0].count; + expect( + finalCount, + `Row count for ${table} should match` + ).to.eq(initialCounts[table]); + }); + }); + + return Promise.all(queries); + }); + }); }); -- 2.34.1