From c03e813ca5c4ed626db14b56fa4e879d2a5eaf5d Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Thu, 21 Nov 2024 14:07:31 +0100 Subject: [PATCH] Bug 38503: Have a generic buildSampleObject[s] --- t/cypress/integration/t/mockData.ts | 30 +++++++++++++---------- t/cypress/plugins/index.js | 13 +++------- t/cypress/plugins/mockData.js | 37 +++++++++++++---------------- 3 files changed, 38 insertions(+), 42 deletions(-) diff --git a/t/cypress/integration/t/mockData.ts b/t/cypress/integration/t/mockData.ts index 3ca84da9208..6624909173e 100644 --- a/t/cypress/integration/t/mockData.ts +++ b/t/cypress/integration/t/mockData.ts @@ -2,7 +2,7 @@ import { mount } from "@cypress/vue"; describe("Generate Random Patron", () => { it("should generate a random patron from the schema", () => { - cy.task("buildSamplePatron").then(mockPatron => { + cy.task("buildSampleObject", { object: "patron" }).then(mockPatron => { expect(mockPatron).to.have.property("patron_id"); }); }); @@ -10,26 +10,32 @@ describe("Generate Random Patron", () => { describe("Generate Random Patrons", () => { it("should generate 42 random patron from the schema", () => { - cy.task("buildSamplePatrons", 42).then(mockPatrons => { - expect(mockPatrons.length).to.equal(42); - expect(mockPatrons[0]).to.have.property("patron_id"); - }); + cy.task("buildSampleObjects", { object: "patron", count: 42 }).then( + mockPatrons => { + expect(mockPatrons.length).to.equal(42); + expect(mockPatrons[0]).to.have.property("patron_id"); + } + ); }); }); describe("Generate Random Library", () => { it("should generate a random library from the schema", () => { - cy.task("buildSampleLibrary").then(mockLibrary => { - expect(mockLibrary).to.have.property("library_id"); - }); + cy.task("buildSampleObject", { object: "library" }).then( + mockLibrary => { + expect(mockLibrary).to.have.property("library_id"); + } + ); }); }); describe("Generate Random Libraries", () => { it("should generate 42 random library from the schema", () => { - cy.task("buildSampleLibraries", 42).then(mockLibraries => { - expect(mockLibraries.length).to.equal(42); - expect(mockLibraries[0]).to.have.property("library_id"); - }); + cy.task("buildSampleObjects", { object: "library", count: 42 }).then( + mockLibraries => { + expect(mockLibraries.length).to.equal(42); + expect(mockLibraries[0]).to.have.property("library_id"); + } + ); }); }); diff --git a/t/cypress/plugins/index.js b/t/cypress/plugins/index.js index 990b98bc174..6a5e123a864 100644 --- a/t/cypress/plugins/index.js +++ b/t/cypress/plugins/index.js @@ -18,19 +18,12 @@ module.exports = (on, config) => { mysql.configurePlugin(on); }; -const { - buildSamplePatron, - buildSamplePatrons, - buildSampleLibrary, - buildSampleLibraries, -} = require("./mockData.js"); +const { buildSampleObject, buildSampleObjects } = require("./mockData.js"); module.exports = (on, config) => { on("task", { - buildSamplePatron, - buildSamplePatrons, - buildSampleLibrary, - buildSampleLibraries, + buildSampleObject, + buildSampleObjects, }); return config; }; diff --git a/t/cypress/plugins/mockData.js b/t/cypress/plugins/mockData.js index a0b2d56a118..5bb9bb75b25 100644 --- a/t/cypress/plugins/mockData.js +++ b/t/cypress/plugins/mockData.js @@ -1,6 +1,14 @@ const { faker } = require("@faker-js/faker"); const { readYamlFile } = require("./../plugins/readYamlFile.js"); +const objects = { + patron: { + spec: "patron", + }, + library: { + spec: "library", + }, +}; const generateMockData = type => { switch (type) { case "string": @@ -26,35 +34,24 @@ const generateDataFromSchema = properties => { return mockData; }; -const buildSamplePatrons = (count = 1) => { - const yamlPath = "api/v1/swagger/definitions/patron.yaml"; - const schema = readYamlFile(yamlPath); - return Array.from({ length: count }, () => - generateDataFromSchema(schema.properties) - ); -}; - -const buildSamplePatron = () => { - return buildSamplePatrons()[0]; -}; - -const buildSampleLibraries = (count = 1) => { - const yamlPath = "api/v1/swagger/definitions/library.yaml"; +const buildSampleObjects = ({ object, count = 1 }) => { + if (!objects.hasOwnProperty(object)) { + throw new Error(`Object type not supported: ${object}`); + } + const yamlPath = `api/v1/swagger/definitions/${objects[object].spec}.yaml`; const schema = readYamlFile(yamlPath); return Array.from({ length: count }, () => generateDataFromSchema(schema.properties) ); }; -const buildSampleLibrary = () => { - return buildSampleLibraries()[0]; +const buildSampleObject = object => { + return buildSampleObjects({ object })[0]; }; module.exports = { generateMockData, generateDataFromSchema, - buildSamplePatron, - buildSamplePatrons, - buildSampleLibrary, - buildSampleLibraries, + buildSampleObject, + buildSampleObjects, }; -- 2.34.1