cypress-plugin-snapshots
Version:
Cypress snapshot functionality for data
32 lines (25 loc) • 632 B
JavaScript
function formatJson(subject) {
return JSON.stringify(subject, undefined, 2);
}
function formatNormalizedJson(subject) {
return formatJson(normalizeObject(subject));
}
function normalizeObject(subject) {
if (Array.isArray(subject)) {
return subject.map(normalizeObject);
}
if (typeof subject === 'object' && subject !== null) {
const keys = Object.keys(subject);
keys.sort();
return keys.reduce((result, key) => {
result[key] = normalizeObject(subject[key]);
return result;
}, {});
}
return subject;
}
module.exports = {
formatNormalizedJson,
formatJson,
normalizeObject,
};