Bug 39315: MockData - generate full objects for libraries and item types
Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk> Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This commit is contained in:
parent
d3ae289b0f
commit
cb384b2a1c
|
|
@ -53,3 +53,25 @@ describe("Generate Random Libraries", () => {
|
|||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Generate objects", () => {
|
||||
it("should generate an object for library", () => {
|
||||
cy.task("buildSampleObject", { object: "item" }).then(mockItem => {
|
||||
expect(mockItem.home_library).to.have.property("library_id");
|
||||
expect(mockItem.home_library).to.have.property("name");
|
||||
expect(mockItem.home_library_id).to.equal(
|
||||
mockItem.home_library.library_id
|
||||
);
|
||||
expect(mockItem.holding_library).to.have.property("library_id");
|
||||
expect(mockItem.holding_library).to.have.property("name");
|
||||
expect(mockItem.holding_library_id).to.equal(
|
||||
mockItem.holding_library.library_id
|
||||
);
|
||||
expect(mockItem.item_type).to.have.property("item_type_id");
|
||||
expect(mockItem.item_type).to.have.property("description");
|
||||
expect(mockItem.item_type_id).to.equal(
|
||||
mockItem.item_type.item_type_id
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -3,9 +3,6 @@ const { readYamlFile } = require("./../plugins/readYamlFile.js");
|
|||
const fs = require("fs");
|
||||
|
||||
const generateMockData = (type, properties) => {
|
||||
if (Array.isArray(type)) {
|
||||
type = type.filter(t => t != '"null"')[0];
|
||||
}
|
||||
switch (type) {
|
||||
case "string":
|
||||
if (properties?.maxLength) {
|
||||
|
|
@ -36,17 +33,52 @@ const generateMockData = (type, properties) => {
|
|||
|
||||
const generateDataFromSchema = (properties, values = {}) => {
|
||||
const mockData = {};
|
||||
const ids = {};
|
||||
Object.entries(properties).forEach(([key, value]) => {
|
||||
if (values.hasOwnProperty(key)) {
|
||||
mockData[key] = values[key];
|
||||
} else {
|
||||
let type =
|
||||
let data;
|
||||
let type = value.type;
|
||||
if (Array.isArray(type)) {
|
||||
type = type.filter(t => t != '"null"')[0];
|
||||
}
|
||||
|
||||
type =
|
||||
value?.format == "date" || value?.format == "date-time"
|
||||
? value.format
|
||||
: value.type;
|
||||
mockData[key] = generateMockData(type, value);
|
||||
: type;
|
||||
let fk_name;
|
||||
if (type == "object") {
|
||||
switch (key) {
|
||||
case "home_library":
|
||||
case "holding_library":
|
||||
data = buildSampleObject({ object: "library" });
|
||||
fk_name = "library_id";
|
||||
break;
|
||||
case "item_type":
|
||||
data = buildSampleObject({ object: "item_type" });
|
||||
fk_name = "item_type_id";
|
||||
break;
|
||||
default:
|
||||
data = generateMockData(type, value);
|
||||
}
|
||||
if (typeof data === "object") {
|
||||
ids[key] = data[fk_name];
|
||||
}
|
||||
} else {
|
||||
data = generateMockData(type, value);
|
||||
}
|
||||
mockData[key] = data;
|
||||
}
|
||||
});
|
||||
|
||||
Object.keys(ids).forEach(k => {
|
||||
if (mockData.hasOwnProperty(k + "_id")) {
|
||||
mockData[k + "_id"] = ids[k];
|
||||
}
|
||||
});
|
||||
|
||||
return mockData;
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue