@blinkk/editor
Version:
Structured content editor with live previews.
249 lines • 5.54 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const deepClean_1 = require("./deepClean");
const ava_1 = __importDefault(require("ava"));
ava_1.default('protected key patterns', t => {
const cleaner = new deepClean_1.DeepClean({
protectedKeyPatterns: ['foo', 'bar.*', /baz$/],
removeNulls: true,
});
t.deepEqual(cleaner.clean({
clean: null,
foo: null,
barz: null,
lubaz: null,
}), {
foo: null,
barz: null,
lubaz: null,
});
});
ava_1.default('remove empty arrays', t => {
const cleaner = new deepClean_1.DeepClean({
removeEmptyArrays: true,
});
// Main level empty object.
t.deepEqual(cleaner.clean({
foo: 'bar',
test: [],
}), {
foo: 'bar',
});
// Deep empty object.
t.deepEqual(cleaner.clean({
foo: 'bar',
test: {
floo: 'baz',
bar: [],
},
}), {
foo: 'bar',
test: {
floo: 'baz',
},
});
// Array with empty object.
t.deepEqual(cleaner.clean({
foo: 'bar',
test: ['baz', []],
}), {
foo: 'bar',
test: ['baz'],
});
// Nested empty arrays.
t.deepEqual(cleaner.clean({
foo: 'bar',
test: [[]],
}), {
foo: 'bar',
});
t.deepEqual(cleaner.clean(['bar', []]), ['bar']);
});
ava_1.default('remove empty objects', t => {
const cleaner = new deepClean_1.DeepClean({
removeEmptyObjects: true,
});
// Main level empty object.
t.deepEqual(cleaner.clean({
foo: 'bar',
test: {},
}), {
foo: 'bar',
});
// Deep empty object.
t.deepEqual(cleaner.clean({
foo: 'bar',
test: {
floo: 'baz',
bar: {},
},
}), {
foo: 'bar',
test: {
floo: 'baz',
},
});
// Array with empty object.
t.deepEqual(cleaner.clean({
foo: 'bar',
test: ['baz', {}],
}), {
foo: 'bar',
test: ['baz'],
});
// Nested empty objects in depth.
t.deepEqual(cleaner.clean({
foo: 'bar',
test: {
bar: {},
},
}), {
foo: 'bar',
});
t.deepEqual(cleaner.clean(['bar', {}]), ['bar']);
});
ava_1.default('remove empty strings', t => {
const cleaner = new deepClean_1.DeepClean({
removeEmptyStrings: true,
});
// Main level empty object.
t.deepEqual(cleaner.clean({
foo: 'bar',
test: '',
}), {
foo: 'bar',
});
// Whitespace only.
t.deepEqual(cleaner.clean({
foo: 'bar',
test: ' ',
}), {
foo: 'bar',
});
// Deep empty object.
t.deepEqual(cleaner.clean({
foo: 'bar',
test: {
floo: 'baz',
bar: '',
},
}), {
foo: 'bar',
test: {
floo: 'baz',
},
});
// Array with empty object.
t.deepEqual(cleaner.clean({
foo: 'bar',
test: ['baz', ''],
}), {
foo: 'bar',
test: ['baz'],
});
t.deepEqual(cleaner.clean(['bar', '']), ['bar']);
});
ava_1.default('remove nulls', t => {
const cleaner = new deepClean_1.DeepClean({
removeNulls: true,
});
// Main level empty object.
t.deepEqual(cleaner.clean({
foo: 'bar',
test: null,
}), {
foo: 'bar',
});
// Deep empty object.
t.deepEqual(cleaner.clean({
foo: 'bar',
test: {
floo: 'baz',
bar: null,
},
}), {
foo: 'bar',
test: {
floo: 'baz',
},
});
// Array with empty object.
t.deepEqual(cleaner.clean({
foo: 'bar',
test: ['baz', null],
}), {
foo: 'bar',
test: ['baz'],
});
t.deepEqual(cleaner.clean(['bar', null]), ['bar']);
});
ava_1.default('remove undefineds', t => {
const cleaner = new deepClean_1.DeepClean({
removeUndefineds: true,
});
// Main level empty object.
t.deepEqual(cleaner.clean({
foo: 'bar',
test: undefined,
}), {
foo: 'bar',
});
// Deep empty object.
t.deepEqual(cleaner.clean({
foo: 'bar',
test: {
floo: 'baz',
bar: undefined,
},
}), {
foo: 'bar',
test: {
floo: 'baz',
},
});
// Array with empty object.
t.deepEqual(cleaner.clean({
foo: 'bar',
test: ['baz', undefined],
}), {
foo: 'bar',
test: ['baz'],
});
t.deepEqual(cleaner.clean(['bar', undefined]), ['bar']);
});
ava_1.default('remove by key', t => {
const cleaner = new deepClean_1.DeepClean({
removeKeys: ['foo'],
});
// Main level key.
t.deepEqual(cleaner.clean({
foo: 'bar',
test: undefined,
}), {
test: undefined,
});
// Deep key.
t.deepEqual(cleaner.clean({
foo: 'bar',
test: {
foo: 'baz',
},
}), {
test: {},
});
// Array with key.
t.deepEqual(cleaner.clean([
{
foo: 'bar',
test: ['baz'],
},
]), [
{
test: ['baz'],
},
]);
});
//# sourceMappingURL=deepClean.test.js.map