UNPKG

@enact/core

Version:

Enact is an open source JavaScript framework containing everything you need to create a fast, scalable mobile or web application.

85 lines (84 loc) 2.24 kB
"use strict"; var _computed = _interopRequireDefault(require("../computed")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } describe('computed', function () { var exampleCfg = { sum: function sum(_ref) { var x = _ref.x, y = _ref.y, z = _ref.z; return x + y + z; }, product: function product(_ref2) { var x = _ref2.x, y = _ref2.y, z = _ref2.z; return x * y * z; } }; var exampleProps = { x: 2, y: 3, z: 4 }; test('should add new props to updated object', function () { var props = { value: true }; var cfg = { count: function count() { return 1; } }; var updated = (0, _computed["default"])(cfg, props); var expected = 1; var actual = updated.count; expect(actual).toBe(expected); }); test('should overwrite properties with computed values', function () { var props = { value: true, count: 2 }; var cfg = { count: function count() { return 1; } }; var updated = (0, _computed["default"])(cfg, props); var expected = 1; var actual = updated.count; expect(actual).toBe(expected); }); test('should not leak updated prop values into other computed props', function () { var props = { count: 1 }; var cfg = { value: function value(_ref3) { var count = _ref3.count; return count + 5; }, count: function count(_ref4) { var _count = _ref4.count; return _count + 1; } }; var updated = (0, _computed["default"])(cfg, props); var expected = 6; var actual = updated.value; expect(actual).toBe(expected); }); test('should work with its documented example - sum', function () { var updated = (0, _computed["default"])(exampleCfg, exampleProps); var expected = 9; var actual = updated.sum; expect(actual).toBe(expected); }); test('should work with its documented example - product', function () { var updated = (0, _computed["default"])(exampleCfg, exampleProps); var expected = 24; var actual = updated.product; expect(actual).toBe(expected); }); });