UNPKG

@netdata/charts

Version:

Netdata frontend SDK and chart utilities

196 lines (195 loc) 7.25 kB
"use strict"; 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" }); }); }); });