@netdata/charts
Version:
Netdata frontend SDK and chart utilities
196 lines (195 loc) • 7.25 kB
JavaScript
;
var _ = require(".");
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
describe("objectTransform helpers", function () {
describe("uppercase", function () {
it("capitalizes first letter", function () {
expect((0, _.uppercase)("hello")).toBe("Hello");
expect((0, _.uppercase)("test")).toBe("Test");
expect((0, _.uppercase)("a")).toBe("A");
});
it("handles empty string", function () {
expect((0, _.uppercase)("")).toBe("");
});
});
describe("camelToUnderscore", function () {
it("converts camelCase to underscore_case", function () {
expect((0, _.camelToUnderscore)("camelCase")).toBe("camel_case");
expect((0, _.camelToUnderscore)("XMLHttpRequest")).toBe("_x_m_l_http_request");
expect((0, _.camelToUnderscore)("getUserData")).toBe("get_user_data");
});
it("handles strings without capitals", function () {
expect((0, _.camelToUnderscore)("lowercase")).toBe("lowercase");
expect((0, _.camelToUnderscore)("test")).toBe("test");
});
});
describe("underscoreToCamel", function () {
it("converts underscore_case to camelCase", function () {
expect((0, _.underscoreToCamel)("underscore_case")).toBe("underscoreCase");
expect((0, _.underscoreToCamel)("get_user_data")).toBe("getUserData");
expect((0, _.underscoreToCamel)("test_value")).toBe("testValue");
});
it("handles strings without underscores", function () {
expect((0, _.underscoreToCamel)("lowercase")).toBe("lowercase");
expect((0, _.underscoreToCamel)("test")).toBe("test");
});
});
describe("objectTransformator", function () {
var mockFunc = jest.fn(function (data) {
return data;
});
var mockAction = jest.fn(function (target, key, value) {
return _objectSpread(_objectSpread({}, target), {}, _defineProperty({}, key, value));
});
beforeEach(function () {
mockFunc.mockClear();
mockAction.mockClear();
});
it("transforms arrays", function () {
var data = [1, 2, 3];
var result = (0, _.objectTransformator)(data, {
func: mockFunc,
action: mockAction,
omit: []
});
expect(result).toEqual([1, 2, 3]);
expect(mockFunc).toHaveBeenCalledTimes(3);
});
it("transforms objects", function () {
var data = {
a: 1,
b: 2
};
var result = (0, _.objectTransformator)(data, {
func: mockFunc,
action: mockAction,
omit: []
});
expect(mockFunc).toHaveBeenCalledTimes(2);
expect(mockAction).toHaveBeenCalledTimes(2);
expect(result).toEqual({
a: 1,
b: 2
});
});
it("omits specified keys", function () {
var data = {
a: 1,
b: 2,
c: 3
};
var result = (0, _.objectTransformator)(data, {
func: mockFunc,
action: mockAction,
omit: ["b"]
});
expect(mockFunc).toHaveBeenCalledTimes(2); // a and c only
expect(result.b).toBe(2); // b should be preserved as-is
});
it("returns primitive values unchanged", function () {
expect((0, _.objectTransformator)("string", {
func: mockFunc,
action: mockAction
})).toBe("string");
expect((0, _.objectTransformator)(42, {
func: mockFunc,
action: mockAction
})).toBe(42);
expect((0, _.objectTransformator)(null, {
func: mockFunc,
action: mockAction
})).toBeNull();
});
});
describe("underscoredKeys", function () {
it("converts object keys to underscore case", function () {
var data = {
firstName: "John",
lastName: "Doe"
};
var result = (0, _.underscoredKeys)(data);
expect(result).toEqual({
first_name: "John",
last_name: "Doe"
});
});
it("handles nested objects", function () {
var data = {
firstName: "John",
contactInfo: {
phoneNumber: "123-456-7890"
}
};
var result = (0, _.underscoredKeys)(data);
expect(result).toEqual({
first_name: "John",
contact_info: {
phone_number: "123-456-7890"
}
});
});
it("omits specified keys", function () {
var data = {
firstName: "John",
lastName: "Doe",
specialKey: "value"
};
var result = (0, _.underscoredKeys)(data, {
omit: ["specialKey"]
});
expect(result).toEqual({
first_name: "John",
last_name: "Doe",
specialKey: "value"
});
});
});
describe("camelizeKeys", function () {
it("converts object keys to camelCase", function () {
var data = {
first_name: "John",
last_name: "Doe"
};
var result = (0, _.camelizeKeys)(data);
expect(result).toEqual({
firstName: "John",
lastName: "Doe"
});
});
it("handles nested objects", function () {
var data = {
first_name: "John",
contact_info: {
phone_number: "123-456-7890"
}
};
var result = (0, _.camelizeKeys)(data);
expect(result).toEqual({
firstName: "John",
contactInfo: {
phoneNumber: "123-456-7890"
}
});
});
it("omits specified keys", function () {
var data = {
first_name: "John",
last_name: "Doe",
special_key: "value"
};
var result = (0, _.camelizeKeys)(data, {
omit: ["special_key"]
});
expect(result).toEqual({
firstName: "John",
lastName: "Doe",
special_key: "value"
});
});
});
});