UNPKG

@netdata/charts

Version:

Netdata frontend SDK and chart utilities

194 lines 7.15 kB
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); } import { uppercase, camelToUnderscore, underscoreToCamel, objectTransformator, underscoredKeys, camelizeKeys } from "."; describe("objectTransform helpers", function () { describe("uppercase", function () { it("capitalizes first letter", function () { expect(uppercase("hello")).toBe("Hello"); expect(uppercase("test")).toBe("Test"); expect(uppercase("a")).toBe("A"); }); it("handles empty string", function () { expect(uppercase("")).toBe(""); }); }); describe("camelToUnderscore", function () { it("converts camelCase to underscore_case", function () { expect(camelToUnderscore("camelCase")).toBe("camel_case"); expect(camelToUnderscore("XMLHttpRequest")).toBe("_x_m_l_http_request"); expect(camelToUnderscore("getUserData")).toBe("get_user_data"); }); it("handles strings without capitals", function () { expect(camelToUnderscore("lowercase")).toBe("lowercase"); expect(camelToUnderscore("test")).toBe("test"); }); }); describe("underscoreToCamel", function () { it("converts underscore_case to camelCase", function () { expect(underscoreToCamel("underscore_case")).toBe("underscoreCase"); expect(underscoreToCamel("get_user_data")).toBe("getUserData"); expect(underscoreToCamel("test_value")).toBe("testValue"); }); it("handles strings without underscores", function () { expect(underscoreToCamel("lowercase")).toBe("lowercase"); expect(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 = 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 = 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 = 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(objectTransformator("string", { func: mockFunc, action: mockAction })).toBe("string"); expect(objectTransformator(42, { func: mockFunc, action: mockAction })).toBe(42); expect(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 = 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 = 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 = 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 = 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 = 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 = camelizeKeys(data, { omit: ["special_key"] }); expect(result).toEqual({ firstName: "John", lastName: "Doe", special_key: "value" }); }); }); });